JP2013061229A - 半導体集積回路、半導体集積回路の設計支援方法、及び設計支援プログラム - Google Patents
半導体集積回路、半導体集積回路の設計支援方法、及び設計支援プログラム Download PDFInfo
- Publication number
- JP2013061229A JP2013061229A JP2011199568A JP2011199568A JP2013061229A JP 2013061229 A JP2013061229 A JP 2013061229A JP 2011199568 A JP2011199568 A JP 2011199568A JP 2011199568 A JP2011199568 A JP 2011199568A JP 2013061229 A JP2013061229 A JP 2013061229A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- flip
- flop
- signal
- enable signal
- 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.)
- Withdrawn
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
【課題】クロックゲーティング回路を搭載した半導体集積回路の回路規模の増大を抑制しながら、テスト時の消費電力を低減する。
【解決手段】本発明による半導体集積回路は、第1フリップフロップ回路5、第2フリップフロップ回路7、制御回路3、及びクロックゲーティング回路2を具備する。第1フリップフロップ5は、スキャンシフトによって第1データを格納する。第2フリップフロップ7は、スキャンシフトによって第2データを格納する。第3制御回路3は、第1データとスキャンイネーブル信号SMCとの論理演算結果と、第2データと組合せ回路9からの第1イネーブル信号EN1との論理演算結果との論理演算結果をゲート制御信号C1として出力する。クロックゲーティング回路2は、ゲート制御信号C1に応じて次段のフリップフロップ回路1へのクロック信号CLKの伝播を制御する。
【選択図】図1
【解決手段】本発明による半導体集積回路は、第1フリップフロップ回路5、第2フリップフロップ回路7、制御回路3、及びクロックゲーティング回路2を具備する。第1フリップフロップ5は、スキャンシフトによって第1データを格納する。第2フリップフロップ7は、スキャンシフトによって第2データを格納する。第3制御回路3は、第1データとスキャンイネーブル信号SMCとの論理演算結果と、第2データと組合せ回路9からの第1イネーブル信号EN1との論理演算結果との論理演算結果をゲート制御信号C1として出力する。クロックゲーティング回路2は、ゲート制御信号C1に応じて次段のフリップフロップ回路1へのクロック信号CLKの伝播を制御する。
【選択図】図1
Description
本発明は、スキャンパステストが実行可能な半導体集積回路、その設計支援方法、及び設計支援プログラムに関する。
近年、低消費電力化を実現するため、フリップフロップ回路に対する不要なクロック入力を一時的に遮断するクロックゲーティング(Clock Gating:CG、ゲーテッドクロック(GC)とも称す)手法が適用されている。クロックゲーティング回路(Clock Gating Circuit:CGC)は、前段の組合せ回路から出力されたイネーブル信号に応じて次段のフリップフロップ回路へクロック信号の入力を制御する。クロックゲーティング回路は、クロック周波数が同じクロックドメイン毎に設けられることが好ましい。これにより、同時に動作するフリップフロップの数を少なくし、消費電力を低減することができる。
一方、半導体集積回路の故障状態を検出するテスト容易化(DFT:Design For Test)技術として、スキャンパステストがある。スキャンパステストでは、スキャンモード(シフトモード又はスキャンシフトモードとも称す)において、回路内のフリップフロップ回路によりスキャンパス(スキャンチェーンとも称す)が形成され、通常動作モードにおいて、半導体集積回路本来の機能を実現する組合せ回路(論理回路)が形成される。スキャンモードでは、スキャンシフト動作によりスキャンパス上のフリップフロップ回路(以下、スキャンレジスタと称す)に対するデータの書込み(スキャンイン)や取り出し(スキャンアウト)が行われる。又、スキャンインによりスキャンパスにテストパタンデータが格納された後、キャプチャモードに切替えられる。キャプチャモードでは、通常動作時と同様に半導体集積回路内の組合せ回路にフリップフロップ回路(スキャンレジスタ)が接続され、組合せ回路にフリップフロップ回路内のテストパタンデータが取り込まれる。組合せ回路は、当該データに基づいた処理結果を、次段のフリップフロップ回路に格納する。続いて、スキャンモードに切替えられることで再度スキャンパスが形成され、スキャンシフト動作によってスキャンレジスタ内のデータが外部に取り出される(スキャンアウト)。これにより、テストパタンに応じた組合せ回路の動作解析を行うことが可能となる。
クロックゲーティング回路が搭載されている半導体集積回路に対してスキャンパステストを行う場合、クロックゲーティング回路に対するイネーブル信号線の故障検出を行うことが要求される。
イネーブル信号線の故障を検出する方法として、イネーブル信号線にテストポイント挿入(TPI)を行う方法や、スキャンイネーブル信号によって制御される選択回路によって、クロックゲーティング回路の動作を制御する方法がある。
例えば、テストモード信号とイネーブル信号の論理和によりクロックゲーティング回路の動作を制御する場合、イネーブル信号線にテストポイントを挿入することでイネーブル信号の故障を検出することができる。しかし、テストモード時、テストモード信号はハイレベル“1”に固定されるため、クロックゲーティング回路は、イネーブル信号に関わらず常にクロック信号をフリップフロップ回路に伝搬させる。この間、フリップフロップ回路に対するクロック信号の伝搬制御はできないため、テスト時における消費電力を抑制することができない。
一方、スキャンイネーブル信号とイネーブル信号との論理和によりクロックゲーティング回路の動作を制御する方法の場合、スキャンシフト時、スキャンイネーブル信号がハイレベル“1”であるため、クロックゲーティング回路はクロック信号をフリップフロップ回路に伝搬させる。一方、キャプチャ時には、スキャンイネーブル信号がハイレベル“0”に固定されるため、クロックゲーティング回路は、イネーブル信号に応じてフリップフロップ回路に対するクロック信号の入力を制御可能となる。しかし、キャプチャ中にもクロック信号をフリップフロップ回路に伝搬させるためには、組合せ回路からのイネーブル信号の論理レベルを制御する必要がある。このため、テストパタンが複雑化するとともにその数が増大してしまう。
このようなテストパタンの増大を防ぐため、スキャンイネーブル信号に替えて外部端子から入力される制御信号によってクロックゲーティング回路を制御する方法がある。しかし、この方法の場合、制御信号用の外部端子を新たに設ける必要があるため、コストの増大が問題となる。
上述のような問題を解決する半導体集積回路が、例えば、特開2010−223793に記載されている(特許文献1参照)。特許文献1に記載の半導体集積回路では、スキャンレジスタに格納されたデータを利用して、クロックゲーティング回路へのイネーブル信号の入力を制御している。このため、組合せ回路に入力するテストパタンを複雑化することなく、クロックゲーティング動作を自由に制御することが可能となる。この結果、特許文献1に記載の半導体集積回路は、クロックゲーティング回路を制御するための外部端子を新たに用意することなく、少ないテストパタン数でイネーブル信号線の故障検出ができる。
特許文献1に記載の技術では、クロックゲーティング回路に対するスキャンイネーブル信号の入力のみならず、組み合わせ回路からのイネーブル信号の入力も、スキャンレジスタ内のテストパタンデータによって制御している。特許文献1では、イネーブル信号の入力を任意に設定可能なテストパタンデータによって制御できるため、キャプチャ時においても、フリップフロップ回路に対するクロックの入力を遮断することが可能となる。これにより、テスト対象とならないフリップフロップ回路のトグルが抑制されるため、キャプチャ時の電力を削減することができる。
しかし、特許文献1では、複数のスキャンレジスタに格納されたデータの組み合わせによって、イネーブル信号の入力を遮断するクロックゲーティング回路を決定している。このため、N個のクロックゲーティング回路を制御する場合、N個のスキャンレジスタが必要となる。又、この場合、N出力のデコーダをN−1個用意するとともに、クロックゲーティング回路を制御するデコーダをN−1個のデコーダから選択する選択回路を用意する必要がある。
従って、特許文献1に記載の半導体集積回路では、スキャンパステストの省電力化のためにスキャンレジスタに格納するデータパタンは複雑化し、回路規模も増大してしまう。特に、制御対象となるクロックゲーティング回路の数が増大した場合、デコーダ数や選択回路数が増大するため回路規模も大きくなる。又、デコーダ出力数や選択回路を制御する制御信号数に応じてスキャンレジスタ数も増えるため、テストパタンデータ量も増大してしまう。
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために、[発明を実施するための形態]で使用される番号・符号が付加されている。ただし、付加された番号・符号は、[特許請求の範囲]に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
本発明による半導体集積回路は、第1フリップフロップ回路(5)、第2フリップフロップ回路(7)、第1制御回路(4)、第2制御回路(6)、第3制御回路(3)、及びクロックゲーティング回路(2)を具備する。第1フリップフロップ(5)は、スキャンシフトによって第1データを格納する。第2フリップフロップ(7)は、スキャンシフトによって第2データを格納する。第1制御回路(4)は、第1データとスキャンイネーブル信号(SMC)との論理演算結果をイネーブル制御信号(C2)として出力する。第2制御回路(6)は、組合せ回路(9)からの第1イネーブル信号(EN1)と第2データとの論理演算結果を第2イネーブル信号(EN2)として出力する。第3制御回路(3)は、イネーブル制御信号(C2)と第2イネーブル信号(EN2)との論理演算結果をゲート制御信号(C1)として出力する。クロックゲーティング回路(2)は、ゲート制御信号(C2)に応じて次段のフリップフロップ回路(1)へのクロック信号(CLK)の伝播を制御する。
他の観点において本発明による半導体集積回路の設計支援方法は、CPU(110)が、RTL記述による半導体集積回路にクロックゲーティング回路(2)を挿入するステップと、CPU(110)が、クロックゲーティング回路(2)と、クロックゲーティング回路(2)によって、クロック信号(CLK)の伝播が制御されるフリップフロップ(1)の数とを対応付けてCGC制御データベース(202)として記録するステップと、CPU(110)が、スキャンシフトによって自身に格納されるデータによってクロックゲーティング回路に対するイネーブル信号の入力を制御するフリップフロップ回路(7)を、半導体集積回路に挿入するステップと、CPU(110)が、フリップフロップ回路(7)とクロックゲーティング回路(2)とを対応付けてCGC制御データベース(202)に記録するステップとを具備する。
本発明によれば、クロックゲーティング回路を搭載した半導体集積回路の回路規模の増大を抑制しながら、テスト時の消費電力を低減することができる。
又、組合せ回路とクロックゲーティング回路とを接続するイネーブル信号線の異常を検出することができる。
更に、スキャンパステスト時のフリップフロップの活性化率を容易に設定することができる。
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
(半導体集積回路)
図1から図5を参照して、本発明による半導体集積回路の構成の一例を説明する。図1は、本発明による半導体集積回路の構成の一例を示す図である。図1に示す半導体集積回路は、フリップフロップ回路1−1〜1−3、5、7、10、12、クロックゲーティング回路2、ゲート制御回路3(第3制御回路)、モード制御回路4(第1制御回路)、イネーブル制御回路6(第2制御回路)、組合せ回路9、11を具備する。
図1から図5を参照して、本発明による半導体集積回路の構成の一例を説明する。図1は、本発明による半導体集積回路の構成の一例を示す図である。図1に示す半導体集積回路は、フリップフロップ回路1−1〜1−3、5、7、10、12、クロックゲーティング回路2、ゲート制御回路3(第3制御回路)、モード制御回路4(第1制御回路)、イネーブル制御回路6(第2制御回路)、組合せ回路9、11を具備する。
フリップフロップ回路1−1〜1−3、5、7、10、12は、スキャンモードにおいて他のフリップフロップ回路(図示しないフリップフロップ回路も含んでも良い)とともにシリアルに接続されてスキャンパスを形成し、スキャンレジスタとして機能する。フリップフロップ回路1−1〜1−3、5、7、10、12は、スキャンモードにおけるスキャンシフト動作によってテストパタンデータが設定されるため、それぞれに設定する値は一意に決定できる。スキャンテストにおいては、フリップフロップ回路を始点、終点とした組合せ回路のロジックコーンとして扱えば良いため、テストパタンデータの作成は容易である。そのテストパタンデータの長さはフリップフロップ回路間に設けられた組合せ回路の論理の複雑さ、深さによって決まる。
組合せ回路11は、キャプチャモードにおいて、前段に接続されるフリップフロップ回路12からの出力データを処理し、処理結果を、後段に接続されるフリップフロップ回路1−1に出力する。フリップフロップ回路1−1は、クロックゲーティング回路2から供給されるクロック信号CLKに同期して、組合せ回路11からの出力データを格納する。同様に、キャプチャモード時、フリップフロップ1−2、1−3は、図示しない組合せ回路に接続され、クロックゲーティング回路2から供給されるクロック信号CLKに同期して、フリップフロップ回路からの出力データを格納する。
クロックゲーティング回路2は、ゲート制御回路3からのゲート制御信号C1に応じて、フリップフロップ回路へのクロック信号の伝搬又は遮断を制御する。詳細には、クロックゲーティング回路2は、クロック信号CLKが供給されるクロック端子CLKとゲート制御信号C1が入力されるイネーブル端子ENと、次段のフリップフロップ回路にクロック信号CLKを供給するクロック端子GCLKを備える。クロックゲーティング回路2は、ゲート制御信号C1に応じて、クロック信号CLKを伝搬させるか遮断するかを決定し、伝搬させる場合、クロック信号CLKを、クロック端子GCLKを介してフリップフロップ回路1−1〜1−3に出力する。例えば、クロックゲーティング回路2は、クロック信号CLKの反転信号に応じてゲート制御信号C1を保持するラッチ回路と、クロック信号CLKが示す論理値と当該ラッチ回路からの出力(ゲート制御信号C1)が示す論理値との論理積をクロック端子GCLKに出力するANDゲートを備える(図示なし)。この場合、クロックゲーティング回路2は、ゲート制御信号C1がハイレベル“1”のとき、クロック信号CLKをクロック端子GCLKに出力し、ゲート制御信号C1がハイレベル“0”のとき、ローレベル“0”の信号をクロック端子GCLKに出力する。すなわち、クロックゲーティング回路2は、ハイレベル“1”のゲート制御信号C1に応じて、クロック信号CLKを伝搬させて制御対象となるフリップフロップ1−1〜1−3に供給し、ローレベル“0”のゲート制御信号C1に応じて、フリップフロップ回路1−1〜1−3へのクロック信号CLKを遮断する。
ゲート制御回路3は、モード制御回路4から出力されたイネーブル制御信号C2が示す論理値と、イネーブル制御回路6から出力されたイネーブル信号(以下、第2イネーブル信号EN2と称す)が示す論理値との論理演算結果を、ゲート制御信号C1としてクロックゲーティング回路2に出力する。ここでは、ゲート制御回路3として、イネーブル制御信号C2と第2イネーブル信号EN2との論理和をゲート制御信号C1として出力するORゲートが好適に利用される。尚、ゲート制御回路3は、クロックゲーティング回路2に内蔵されていても良い。ゲート制御回路3の動作の詳細は後述する。
モード制御回路4は、スキャンイネーブル信号SMCが示す論理値と、フリップフロップ回路5(第1フリップフロップ)の保持データ(第1データ)との論理演算結果を、イネーブル制御信号C2としてゲート制御回路3に出力する。ここでは、モード制御回路4として、スキャンイネーブル信号SMCとフリップフロップ回路5の保持データとの論理和を、イネーブル制御信号C2として出力するORゲートが好適に利用される。尚、スキャンイネーブル信号SMCは、スキャンモードとキャプチャモードとの切り替えを制御する信号である。例えば、半導体集積回路は、ハイレベル“1”のスキャンイネーブル信号SMCに応じてスキャンモードに設定され、ローレベル“0”のスキャンイネーブル信号SMCに応じてキャプチャモードに設定される。
図2は、本発明に係るモード制御回路4の動作の一例を示す真理値表である。図2を参照して、モード制御回路4は、スキャンイネーブル信号SMCがローレベル“0”の場合、フリップフロップ回路5の保持データが示す論理値のイネーブル制御信号C2を、ゲート制御回路3に出力する。すなわち、モード制御回路4は、キャプチャモードのとき、フリップフロップ回路5の保持データがイネーブル制御信号C2として出力する。一方、スキャンイネーブル信号SMCがハイレベル“1”の場合、フリップフロップ回路5の保持データが示す論理値に関わらず、ハイレベル“1”のイネーブル制御信号C2をゲート制御回路3に出力する。すなわち、モード制御回路4は、スキャンモードのとき、フリップフロップ回路5の保持データに関わらずハイレベル“1”のイネーブル制御信号C2を出力する。上述したモード制御回路4の動作を換言すると、モード制御回路4は、フリップフロップ回路5の保持データがハイレベル“1”を示す場合、スキャンイネーブル信号SMCが示す論理値に関わらず、ハイレベル“1”のイネーブル制御信号C2をゲート制御回路3に出力する。すなわち、モード制御回路4は、フリップフロップ回路5の保持データがハイレベル“1”の場合、ゲート制御回路3へのスキャンイネーブル信号SMCの伝搬を遮断し、イネーブル制御信号C2をハイレベル”1”に固定する。一方、フリップフロップ回路5の保持データがローレベル“0”の場合、モード制御回路4は、スキャンイネーブル信号SMCが示す論理値のイネーブル制御信号C2を、ゲート制御回路3に出力する。すなわち、フリップフロップ回路5の保持データがローレベル“0”の場合、モード制御回路4は、スキャンイネーブル信号SMCをイネーブル制御信号C2としてゲート制御回路3に出力(伝播)する。この際、キャプチャモードの場合、ローレベル“0”のスキャンイネーブル信号SMCがイネーブル制御信号C2としてゲート制御回路3に出力され、スキャンモードの場合、ハイレベル“1”のスキャンイネーブル信号SMCがイネーブル制御信号C2としてゲート制御回路3に出力される。
このように、本発明に係るモード制御回路4は、スキャンシフトによってフリップフロップ回路5に設定されたテストパタンデータを用いて、スキャンイネーブル信号SMCのゲート制御回路3(クロックゲーティング回路2)への伝搬を制御することができる。
フリップフロップ回路5は、スキャンモードにおいて、他のフリップフロップ回路とともにスキャンパスを形成するスキャンレジスタとして機能する。このため、スキャンシフト動作によってテストデータがフリップフロップ回路5に書き込まれる。フリップフロップ回路5の保持データは、キャプチャモードにおいてゲート制御回路3を制御するイネーブル制御信号C2となる。すなわち、キャプチャモードにおけるイネーブル制御信号C2の値は、スキャンレジスタに設定されたテストパタンデータによって設定されることとなる。
組合せ回路11は、キャプチャモードにおいて、前段に接続されるフリップフロップ回路10からの出力データを処理し、処理結果(以下、第1イネーブル信号EN1と称す)を、イネーブル信号線8を介してイネーブル制御回路6に出力する。第1イネーブル信号EN1のクロックゲーティング回路2への入力は、イネーブル制御回路6及びゲート制御回路3によって制御される。
イネーブル制御回路6は、イネーブル信号線8を介して組合せ回路9から出力された第1イネーブル信号EN1が示す論理値と、フリップフロップ回路7(第2フリップフロップ)の保持データ(第2データ)との論理演算結果を、第2イネーブル信号EN2としてゲート制御回路3に出力する。ここでは、イネーブル制御回路6として、第1イネーブル信号EN1とフリップフロップ回路7の保持データとの論理積を、第2イネーブル信号EN2として出力するANDゲートが好適に利用される。尚、第1イネーブル信号EN1は、フリップフロップ回路10の保持データに基づいた組合せ回路9の処理結果である。
図3は、本発明に係るイネーブル制御回路6の動作の一例を示す真理値表である。図3を参照して、イネーブル制御回路6は、フリップフロップ回路7の保持データがハイレベル“1”の場合、第1イネーブル信号EN1が示す論理値の第2イネーブル信号EN2を、ゲート制御回路3に出力する。すなわち、フリップフロップ回路7の保持データがハイレベル“1”の場合、イネーブル制御回路6は、組合せ回路9からの第1イネーブル信号EN1を第2イネーブル信号EN2としてゲート制御回路3に出力(伝播)する。一方、フリップフロップ回路7の保持データがローレベル“0”の場合、イネーブル制御回路6は、第1イネーブル信号EN1が示す論理値に関わらず、ローレベル“0”の第2イネーブル信号EN2をゲート制御回路3に出力する。すなわち、イネーブル制御回路6は、フリップフロップ回路7の保持データがローレベル“0”の場合、クロックゲーティング回路2への第1イネーブル信号EN1の伝搬を遮断し、第2イネーブル信号EN2を“0”に固定する。
このように、本発明に係るイネーブル制御回路6は、スキャンシフトによってフリップフロップ回路7に設定されたテストパタンデータを用いて、第1イネーブル信号EN1のゲート制御回路3(クロックゲーティング回路2)への伝搬を制御することができる。
図4は、本発明に係るゲート制御回路3の動作の一例を示す真理値表である。図2から図4を参照して、ゲート制御回路3は、イネーブル制御信号C2が示す論理値がローレベル“0”を示す場合、第2イネーブル信号EN2が示す論理値のゲート制御信号C1を、クロックゲーティング回路2に出力する。すなわち、半導体集積回路がキャプチャモードに設定された場合、ゲート制御回路3は、第2イネーブル信号EN2をゲート制御信号C1としてクロックゲーティング回路2に出力(伝播)する。例えば、キャプチャモードにおいて、フリップフロップ回路7にハイレベル“1”のデータが保持されている場合、第1イネーブル信号EN1が第2イネーブル信号EN2としてゲート制御回路3に入力される。この場合、クロックゲーティング回路2は、組合せ回路9から出力された第1イネーブル信号EN1に応じてフリップフロップ回路1−1〜1−3へのクロック信号CLKの供給を制御することとなる。すなわち、スキャンシフトによりフリップフロップ回路7にハイレベル“1”のテストパタンデータを書き込むことで、キャプチャモードにおけるフリップフロップ回路1−1〜1−3に対するクロック信号CLKの供給又は遮断を、第1イネーブル信号EN1に応じて制御することが可能となる。あるいは、キャプチャモードにおいて、フリップフロップ回路7にローレベル“0”のデータが保持されている場合、ローレベル“0”の第2イネーブル信号EN2がゲート制御回路3に入力される。この場合、クロックゲーティング回路2は、フリップフロップ回路1−1〜1−3へのクロック信号CLKの供給を遮断する。すなわち、スキャンシフトによりフリップフロップ回路7にローレベル“0”のテストパタンデータを書き込むことで、キャプチャモードにおけるフリップフロップ回路1−1〜1−3に対するクロック信号CLKの供給を停止することが可能となる。これによりキャプチャモード時のフリップフロップ回路1−1〜1−3のトグルを抑えることができ、キャプチャ時の電力消費を削減することができる。フリップフロップ回路7及びイネーブル制御回路6をクロックグループ単位(クロックドメイン単位)で挿入することによって、クックドメイン単位でクロック信号が意図的に遮断される。これにより、半導体集積回路におけるキャプチャ時の消費電力は低減し、IRドロップ等の影響は削減され、テスト時の特性が改善される。
一方、イネーブル制御信号C2が示す論理値がローレベル“1”を示す場合、ゲート制御回路3は、第2イネーブル信号EN2が示す論理値に関わらず、ハイレベル“1”のゲート制御信号C1をクロックゲーティング回路2に出力する。すなわち、ゲート制御回路3は、フリップフロップ回路5にハイレベル“1”のデータが設定されている場合、クロックゲーティング回路2への第2イネーブル信号EN2の伝搬を遮断し、ゲート制御信号C1を“1”に固定する。これにより、クロックゲーティング回路2は、スキャンイネーブル信号SMC、第1イネーブル信号EN1、又はフリップフロップ回路7に格納されたデータの論理値に関わらずフリップフロップ回路1−1〜1−3にクロック信号CLKを出力(伝播)する。尚、スキャンモードの場合もイネーブル制御信号C2が示す論理値はローレベル“1”を示すため、フリップフロップ回路1−1〜1−3にクロック信号CLKは出力(伝播)され、スキャンシフト動作が可能となる。
本発明では、キャプチャモードにおいて、フリップフロップ回路5の保持データによってイネーブル制御信号C2をハイレベル“1”に固定し、クロック信号CLKをフリップフロップ回路1−1〜1−3に伝播させ、フリップフロップ回路7の保持データによって第2イネーブル制御信号C2をローレベル“0”に固定し、フリップフロップ回路1−1〜1−3へのクロック信号CLKを遮断する。このように、本発明では、キャプチャモードにおいて、第1イネーブル信号EN1に拠らず、フリップフロップ回路5、7に設定されたデータに基づいて、フリップフロップ回路1−1〜1−3へのクロック信号CLKの伝播を制御することができるため、イネーブル信号線8に対する故障検査を行うことが可能となる。又、この故障検査の際に行われるクロック信号CLKの伝播制御は、スキャンシフト動作によってフリップフロップ回路5、7に対し一意に設定されたテストパタンデータで行われるため、当該検査のために外部端子を用意する必要はない。更に、イネーブル信号線8の故障検出は最低1回行われれば良いため、当該故障検出テスト以外のテストパタンデータとして“1”をフリップフロップ回路5に設定することで、キャプチャモードにおいて、第2イネーブル信号ENの値に拠らずフリップフロップ回路1−1〜1−3へのクロック信号CLKが伝搬することとなる。このためATPG時に制御しなければならない論理が減るため、パタン数を削減できる。
本発明では、第1イネーブル信号EN1及びフリップフロップ回路7内データの論理演算結果と、スキャンイネーブル信号SMC及びフリップフロップ回路5内データの論理演算結果との論理演算結果によって、クロックゲーティング回路2のゲーティング動作を制御している。このため、キャプチャ時におけるクロック信号CLKの伝播を制御するためには、少なくとも3つの論理演算回路を必要とする。本実施の形態では1つのANDゲートと2つのORゲートを用意するだけで、クロックゲーティング回路2の制御が可能となる。特に、キャプチャ時の消費電力低減のためにクロックゲーティング回路2のクロック伝搬を遮断する場合、1組のフリップフロップ回路7とイネーブル制御回路6(ここではANDゲート)のみを用意すれば良い。従って、本発明による半導体集積回路は、特許文献1に記載の回路に比べ格段に小型化できる。
図1に示す半導体集積回路の一例では、1つのクロックゲーティング回路2におけるクロック伝搬の制御を行う構成について説明したがこれに限らず、図5に示すように複数のクロックゲーティング回路2−1、2−2におけるクロック伝搬の制御が行われても良い。又、クロック伝搬が制御されるクロックゲーティング回路は、複数のみならず1つのフリップフロップ回路に対するクロック信号の供給を制御しても良い。
図5は、本発明による半導体集積回路の構成の他の一例を示す図である。図5に示す半導体集積回路では、ゲート制御回路3に複数のクロックゲーティング回路2−1、2−2が接続されている。又、クロックゲーティング回路2−1はフリップフロップ回路1−11に対するクロック信号CLKの供給を制御し、クロックゲーティング回路2−2はフリップフロップ回路1−21、1−22に対するクロック信号CLKの供給を制御する。フリップフロップ回路1−11は、組合せ回路11−11を介して前段のフリップフロップ回路12−11に接続され、フリップフロップ回路1−21は、組合せ回路11−21を介して前段のフリップフロップ回路12−21に接続される。フリップフロップ回路1−22も同様に図示しない組合せ回路に接続される。その他の構成は、図1に示す半導体集積回路と同様である。
本発明によれば、複数のクロックゲーティング回路2−1、2−2のクロック伝搬を制御する場合でも、ゲート制御回路3、モード制御回路4、フリップフロップ回路5、7、及びイネーブル制御回路6をそれぞれ1つ用意すれば良い。動作については、図1の説明と同様であるためその説明は省略する。又、ゲーティング動作の制御対象となるクロックゲーティング回路の駆動数は、1つとは限らず、複数でも構わない。ここで、駆動数とはクロックゲーティング回路がクロック信号CLKの供給を制御する対象のフリップフロップ回路の数を示す。
図5に示す一例では、1つのフリップフロップ回路7に設定されたデータによって、それぞれ駆動数が異なる複数のクロックゲーティング回路2−1、2−2のキャプチャ時におけるクロック遮断(電力消費抑制)が制御される。フリップフロップ回路7が制御可能なクロックゲーティング回路、すなわち、フリップフロップ回路7による電力抑制量は、半導体集積回路の設計時にEDAツール又は設計者によって予め設定される。この際、クロックゲーティング回路の駆動数が考慮されて、フリップフロップ回路7と、これによって制御されるクロックゲーティング回路が対応付けられる。
(半導体集積回路の設計方法及びテストパタン生成方法)
図6から図8を参照して、本発明による半導体集積回路の設計支援装置、及び設計方法を説明する。
図6から図8を参照して、本発明による半導体集積回路の設計支援装置、及び設計方法を説明する。
図6を参照して、本発明による半導体集積回路設計支援装置100(以下、設計支援装置100と称す)の構成の一例を説明する。図6は、本発明による設計支援装置100の実施の形態における構成図である。設計支援装置100は、バス160を介して相互に接続されるCPU110、RAM120、入力装置130、出力装置140、記憶装置150を具備する。入力装置130は、キーボードやマウス等のユーザによって操作されることで、各種データをCPU110や記憶装置150に出力する。出力装置140は、モニタやプリンタに例示され、CPU110から出力される半導体装置のレイアウト結果をユーザに対し視認可能に出力する。記憶装置150はハードディスクやメモリ等に例示される外部記憶装置である。
記憶装置150は、半導体集積回路設計支援プログラム200(以下、設計支援プログラムと称す)、RTL(Register Transfer Level)記述によるネットリスト201、及びCGC制御データベース202を格納している。CPU110は、入力装置130からの入力に応答して、記憶装置150内の設計支援プログラム200を実行することで、EDAツールとしての機能を実現する。この際、記憶装置150からの各種データやプログラムはRAM120に一時格納され、CPU110は、RAM120内のデータを用いて各種処理を実行する。
図7は、本発明に係る半導体集積回路の設計方法の一例を示すフロー図である。ここでは、図1又は図5に示す半導体集積回路に対するクロックゲーティング回路2の実装からテストパタンの作成までの設計方法を説明する。先ず、CPU110は、予め設計された半導体集積回路のネットリスト201に対し、クロックゲーティング回路2を挿入する(ステップS101)。この際、CPU12は、挿入したクロックゲーティング回路2のインスタンス(以下CGCインスタンス22と称す)と、当該クロックゲーティング回路2の駆動数(以下、CGC駆動F/F数23と称す)とを対応付けてCGC制御データベース202に記録する。図8は、本発明に係るCGC制御データベースの構造の一例を示す図である。図8を参照して、挿入されたクロックゲーティング回路2“a”の駆動数が“5”の場合、CGCインスタンス22“a”とCGC駆動F/F数“5”とが対応付けられてCGC制御データベース202に記録される。尚、ステップS101の時点では、後述するパワー制御F/Fインスタンス21は設定されていない。
続いて、CPU110は、クロックゲーティング回路2を制御するためのフリップフロップ回路5、7をネットリスト201上に設定、又はネットリスト201に追加するとともに、ゲート制御回路3、モード制御回路4、イネーブル制御回路6をネットリスト201に追加し、それぞれの構成を結線する(ステップS102)。CPU110は、クロックゲーティング回路2を制御するフリップフロップ回路7が決まると、当該フリップフロップ回路7のインスタンス(以下、パワー制御F/Fインスタンス21と称す)と、制御対象のCGCインスタンス22とCGC駆動F/F数23とを対応付けてCGC制御データベース202に記録する。
ステップS102においてCPU110は、CGC制御データベース202を参照し、制御対象となるクロックゲーティング回路2のCGC駆動F/F数23の数や、論理依存性、あるいはクロックゲーティング回路2の配置位置等を考慮して、クロックゲーティング回路2を制御するフリップフロップ回路5、7を追加する。例えば、1つのフリップフロップ回路7によってクロック信号CLKの停止対象となるフリップフロップ回路の総数(以下、総駆動数と称す)が均等になるようにクロックゲーティング回路2を制御するフリップフロップ回路7が決定されることが好ましい。あるいは、総駆動数の上限値又は下限値が、フリップフロップ回路7の挿入条件として定義され、CGC駆動F/F数23の総和が総駆動数の上限値以下又は下限値以上となるように、クロックゲーティング回路2を制御するフリップフロップ回路7が決定されることが好ましい。又、フリップフロップ回路7を追加する場合、フリップフロップ回路7とクロックゲーティング回路2との配置位置も考慮されることが好ましい。
図8は、1つのフリップフロップ回路7によってクロック供給を停止するフリップフロップ回路の上限が6と規定されている場合の設定例を示す。図8を参照して、CPU110は、クロックゲーティング回路2“a”、“b”、“c”が近傍にあり同一クロック信号CLKを制御している場合、総駆動数が6以下となるように、フリップフロップ回路7“A”、“B”を追加する。ここでは、フリップフロップ回路7“A”が制御するクロックゲーティング回路2として、CGC駆動F/F数23が“5”のCGCインスタンス“a”が設定され、フリップフロップ回路7“B”が制御するクロックゲーティング回路2として、CGC駆動F/F数23が“3”のCGCインスタンス“b”と、CGC駆動F/F数23が“2”のCGCインスタンス“b”(総駆動数は“5”)が設定される。又、フリップフロップ回路7“C”が制御するクロックゲーティング回路2として、CGC駆動F/F数23が“1”のCGCインスタンス“a”と、CGC駆動F/F数23が“2”のCGCインスタンス“e”とCGC駆動F/F数23が“3”のCGCインスタンス“f”(総駆動数は“6”)が設定される。このように、フリップフロップ回路7(パワー制御F/Fインスタンス21)の制御対象となるフリップフロップ回路数(CGC駆動F/F数23)を、所定の条件で自動的に設定することが可能となる。又、フリップフロップ回路5もフリップフロップ回路7と同様に、追加されることが好ましい。
CPU110は、フリップフロップ回路5、7や制御回路等の追加が完了したRTL記述の半導体集積回路を論理合成し(ステップS104)、スキャンパスを構成するためのセレクタの追加や結線を行う(ステップS103)。これにより、ステップS102で追加されたフリップフロップ回路5、7がスキャンパスの一部を構成するスキャンレジスタとして機能することとなる。
続いて、CPU110は、設計支援プログラム200を実行することでATPG(Automatic Test Pattern Generator)として機能し、テストパタン204を生成する(ステップS105)。この際、CPU110は、CGC制御データベース202と記憶装置150に格納された活性化率203を考慮してテストパタンを生成する。詳細には、CPU110は、スキャンパスを含む論理合成された半導体集積回路の回路構成を認識し、従来のATPGと同様のアルゴリズムによりテスト内容に応じたテストパタン204を作成する。この際、CPU110は、入力装置130を介してユーザから指定された活性化率203に基づいて、キャプチャモード時に活性化(フリップフロップ回路に対してクロック信号CLKを供給)又は非活性化(フリップフロップ回路に対してクロック信号CLKを停止)させるフリップフロップ回路の数の上限値又は下限値を決める。活性化率203は、キャプチャモード時において消費電力量の目標値に応じて設定されることが好ましい。又、活性化率203として半導体集積回路における活性化(クロック供給)するフリップフロップ回路の割合の上限又は下限が設定されることが好ましい。
例えば、CPU110は、決められた活性化率の上限値以下となるようにCGC制御データベース202を参照して、フリップフロップ回路7に設定するテストパタンデータの値を決める。ここで、CGC制御データベース202にはフリップフロップ回路7が制御可能な総駆動数が対応付けられている。このため、CPU110は、フリップフロップ回路7の総駆動数の総和が、活性化率の上限値以下となるように、フリップフロップ回路7への設定値を決定することで、ユーザが指定した活性化率に抑えたスキャンパス試験を行うためのテストパタン204の生成が可能になる。このように、本発明によれば、ユーザ指定の活性化率を満足するテストパタン204を容易に生成することができる。生成されたテストパタン204は、記憶装置150に格納され、スキャンテストに利用される。尚、フリップフロップ回路5に対して設定するスキャンパスデータの設定方法もフリップフロップ回路7に対する設定方法と同様である。
ステップS102の工程を実行することはユーザによる手作業でも比較的容易である。しかし、この工程をEDAツールに機能として組込み、上述のように自動的に挿入する手法は有効である。この場合、回路実装者が意識することなく、従来手法と同様に本発明を実現することができる。又、ステップS103以降の工程においては、追加したフリップフロップ回路5、75は回路実装者が意識することなく、スキャンパスに組み込まれ、パタン作成(ATPG)においても、意識することなく自動的に作成することができる。又、フリップフロップ回路5、7に設定するデータにより、従来よりも柔軟に活性化率を変更してスキャンパステストを行うことが可能となるため、パタン作成のアルゴリズムを最適化することにより、パタン数をより従来よりも削減できる場合がある。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。ゲート制御回路3、モード制御回路4、イネーブル制御回路6のそれぞれの論理演算方法は、上述の形態に限らず、他の論理演算回路によって実現されても良い。
図1、図5に示す一例ではフリップフロップ回路5、7を利用したクロック伝搬制御方法について説明したが、これに限らず、フリップフロップ回路7及びイネーブル制御回路6、ゲート制御回路3を削除した構成でも構わない。この場合、キャプチャ時の消費電力削減効果はなくなるが、図2に示す真理値表に従うイネーブル制御信号C2によってクロックゲーティング回路2を制御することで、イネーブル信号線8の故障検出テストを行うことは可能となる。このとき、スキャンシフト動作によってフリップフロップ回路5に設定されたテストパタンデータによって故障検出テストが可能となることから、ATPG時に制御しなければならない論理が減りパタン数が削減される。
1、1−1〜1−3、1−11、1−21、1−22 :フリップフロップ回路
2、2−1、2−2 :クロックゲーティング回路
3 :ゲート制御回路
4 :モード制御回路
5、7、10、12、12−11、12−21 :フリップフロップ回路
6 :イネーブル制御回路
8 :イネーブル信号線
9、11、11−11、11−21 :組合せ回路
21:パワー制御F/Fインスタンス
22:CGCインスタンス
23:CGC駆動F/F数
100:設計支援装置
130:入力装置
140:出力装置
150:記憶装置
160:バス
200:半導体集積回路設計支援プログラム
201:ネットリスト
202:CGC制御データベース
203:活性化率
204:テストパタン
2、2−1、2−2 :クロックゲーティング回路
3 :ゲート制御回路
4 :モード制御回路
5、7、10、12、12−11、12−21 :フリップフロップ回路
6 :イネーブル制御回路
8 :イネーブル信号線
9、11、11−11、11−21 :組合せ回路
21:パワー制御F/Fインスタンス
22:CGCインスタンス
23:CGC駆動F/F数
100:設計支援装置
130:入力装置
140:出力装置
150:記憶装置
160:バス
200:半導体集積回路設計支援プログラム
201:ネットリスト
202:CGC制御データベース
203:活性化率
204:テストパタン
Claims (6)
- 第2実施例
スキャンシフトによって第1データを格納する第1フリップフロップと、
スキャンシフトによって第2データを格納する第2フリップフロップと、
前記第1データとスキャンイネーブル信号との論理演算結果をイネーブル制御信号として出力する第1制御回路と、
組合せ回路からの第1イネーブル信号と前記第2データとの論理演算結果を第2イネーブル信号として出力する第2制御回路と、
前記イネーブル制御信号と前記第2イネーブル信号との論理演算結果をゲート制御信号として出力する第3制御回路と、
前記ゲート制御信号に応じて次段のフリップフロップ回路へのクロック信号の伝播を制御するクロックゲーティング回路と
を具備する
半導体集積回路。 - 請求項1に記載の半導体集積回路において、
前記第1制御回路は、前記第1データと前記スキャンイネーブル信号との論理和を前記イネーブル信号として出力するORゲートであり、
前記第2制御回路は、前記第1イネーブル信号と前記第2データとの論理積を前記第2イネーブル信号として出力するANDゲートであり、
前記第3制御回路は、前記イネーブル制御信号と前記第2イネーブル信号との論理和を前記ゲート制御信号として出力するORゲートである
半導体集積回路。 - CPUが、RTL記述による半導体集積回路にクロックゲーティング回路を挿入するステップと、
前記CPUが、前記クロックゲーティング回路と、前記クロックゲーティング回路によって、クロック信号の伝播が制御されるフリップフロップの数とを対応付けてCGC制御データベースとして記録するステップと、
前記CPUが、スキャンシフトによって自身に格納されるデータによって前記クロックゲーティング回路に対するイネーブル信号の入力を制御するフリップフロップ回路を、前記半導体集積回路に挿入するステップと、
前記CPUが、前記フリップフロップ回路と前記クロックゲーティング回路とを対応付けて前記CGC制御データベースに記録するステップと
を具備する
半導体集積回路の設計支援方法。 - 請求項3に記載の設計支援方法において、
前記フリップフロップ回路を挿入するステップは、
前記CPUが、スキャンシフトによって第1データを格納する第1フリップフロップと、スキャンシフトによって第2データを格納する第2フリップフロップと、前記第1データとスキャンイネーブル信号との論理演算結果をイネーブル制御信号として出力する第1制御回路と、組合せ回路からの第1イネーブル信号と前記第2データとの論理演算結果を第2イネーブル信号として出力する第2制御回路と、前記イネーブル制御信号と前記第2イネーブル信号との論理演算結果をゲート制御信号として出力する第3制御回路とを追加するステップと、
前記CPUが、前記クロックゲーティング回路のイネーブル端子と前記ゲート制御信号が供給される信号線とを接続するステップと
を備え、
前記フリップフロップ回路と前記クロックゲーティング回路とを対応付けて前記CGC制御データベースに記録するステップは、前記CPUが、前記第2フリップフロップと、前記クロックゲーティング回路とを対応付けて前記CGC制御データベースとして記憶装置に記録するステップを備える
半導体集積回路の設計支援方法。 - 請求項3又は4に記載の設計支援方法において、
前記CPUが、前記CGC制御データベースと予め指定されたフリップフロップの活性化率に基づいてスキャンパステストにおけるテストパタンを生成するステップを更に具備する
半導体集積回路の設計支援方法。 - 請求項3から5のいずれか1項に記載の設計支援方法をコンピュータに実行させる半導体集積回路の設計支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011199568A JP2013061229A (ja) | 2011-09-13 | 2011-09-13 | 半導体集積回路、半導体集積回路の設計支援方法、及び設計支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011199568A JP2013061229A (ja) | 2011-09-13 | 2011-09-13 | 半導体集積回路、半導体集積回路の設計支援方法、及び設計支援プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013061229A true JP2013061229A (ja) | 2013-04-04 |
Family
ID=48186019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011199568A Withdrawn JP2013061229A (ja) | 2011-09-13 | 2011-09-13 | 半導体集積回路、半導体集積回路の設計支援方法、及び設計支援プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013061229A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443305A (zh) * | 2018-12-27 | 2020-07-24 | 贵州中烟工业有限责任公司 | 一种利用电能偏差量检测线路故障的方法及装置 |
CN112805577A (zh) * | 2019-12-30 | 2021-05-14 | 成都海光集成电路设计有限公司 | 芯片、芯片测试方法及电子设备 |
-
2011
- 2011-09-13 JP JP2011199568A patent/JP2013061229A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443305A (zh) * | 2018-12-27 | 2020-07-24 | 贵州中烟工业有限责任公司 | 一种利用电能偏差量检测线路故障的方法及装置 |
CN112805577A (zh) * | 2019-12-30 | 2021-05-14 | 成都海光集成电路设计有限公司 | 芯片、芯片测试方法及电子设备 |
WO2021134220A1 (zh) * | 2019-12-30 | 2021-07-08 | 成都海光集成电路设计有限公司 | 芯片、芯片测试方法及电子设备 |
US11686771B2 (en) | 2019-12-30 | 2023-06-27 | Chengdu Haiguang Integrated Circuit Design Co., Ltd. | Chip, chip testing method and electronic device |
CN112805577B (zh) * | 2019-12-30 | 2023-09-15 | 成都海光集成电路设计有限公司 | 芯片、芯片测试方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4729007B2 (ja) | 消費電力解析装置および消費電力解析方法 | |
US8127188B2 (en) | Semiconductor integrated circuit and design automation system | |
JP3851782B2 (ja) | 半導体集積回路及びそのテスト方法 | |
WO2002063313A2 (en) | Method for scan testing of digital circuit, digital circuit and program product | |
JP5012890B2 (ja) | 半導体集積回路の設計方法 | |
US20100095170A1 (en) | Semiconductor integrated circuit device and delay fault testing method thereof | |
US8413102B2 (en) | Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop | |
JP2009230392A (ja) | シミュレーション装置、シミュレーション方法及びプログラム | |
JP2008065457A (ja) | 半導体集積回路の設計方法及び設計システム | |
JP5136043B2 (ja) | 論理回路および記録媒体 | |
JP2013061229A (ja) | 半導体集積回路、半導体集積回路の設計支援方法、及び設計支援プログラム | |
JP2007142094A (ja) | フリップフロップ機能素子、半導体集積回路、半導体集積回路設計方法及び半導体集積回路設計装置 | |
US20140245252A1 (en) | Method and circuit to implement a static low power retention state | |
US20130019134A1 (en) | Apparatus and method for designing semiconductor device, and semiconductor device | |
Kuentzer et al. | On the reuse of timing resilient architecture for testing path delay faults in critical paths | |
JP2001141785A (ja) | スキャンパステスト用のフリップフロップ回路およびシミュレーション方法 | |
JP5408052B2 (ja) | 集積回路、シミュレーション装置、及びシミュレーション方法 | |
Shi et al. | Testing delay faults in asynchronous handshake circuits | |
JP7354815B2 (ja) | 検証支援装置、検証支援方法および検証支援プログラム | |
JP5625241B2 (ja) | 半導体装置及びその試験方法 | |
JP5578095B2 (ja) | 半導体装置 | |
JP5942417B2 (ja) | シミュレーション装置、シミュレーション方法及びシミュレーションプログラム | |
JP7069608B2 (ja) | 半導体設計支援装置、半導体設計支援方法及びプログラム | |
JP2011102764A (ja) | 半導体集積回路、半導体集積回路設計方法及び半導体集積回路設計プログラム | |
JP5531479B2 (ja) | 回路設計方法、及び回路設計プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141202 |