(57)【要約】【課題】低消費電力モードにおいて一部の回路への電源供給を停止するＬＳＩの設計方法において、マスタースレーブ型のスレーブ側のみが低消費電力モードにおいて電源供給を維持されデータを保持できるリテンションフリップフロップセルを１種類だけ使って、正相と逆相のリテンションフリップフロップを、任意に論理合成することができる設計方法を提供する。【解決手段】入力されたＲＴＬに基づいて合成した論理回路のフリップフロップに、入力された電源仕様に基づいてリテンションフリップフロップをマッピングしてネットリストを合成する。正相用クロック固定セルと逆相用クロック固定セルと備えるセルライブラリを参照し、合成したネットリストを解析してリテンションフリップフロップのクロック位相を判定し、その結果にもとづいて、正相用または逆相用クロック固定セルを、ネットリストのリテンションフリップフロップのクロック入力に挿入する。【選択図】図１
2013140884.tif 000002
【特許請求の範囲】
【請求項１】
低消費電力モードにおいて一部の回路への電源供給を停止しリテンションフリップフロップによってデータを保持するＬＳＩのネットリストを生成するＬＳＩ設計方法であって、
セルライブラリを備え、
前記セルライブラリは、リテンションフリップフロップセルと第１のクロック固定セルと第２のクロック固定セルとを含み、
前記リテンションフリップフロップセルは、クロック入力端子とデータ入力端子とデータ出力端子とを備え、マスターラッチとスレーブラッチを含んで構成され、前記スレーブラッチは前記低消費電力モード中に前記クロック入力端子が第１電圧レベルにあるときに前記データ出力端子に出力するデータを保持するものであり、
前記第１のクロック固定回路セルは、クロック入力端子と前記リテンションフリップフロップへのクロック出力端子を備え、前記低消費電力モードに遷移するときに、前記クロック入力端子が第１電圧レベルにある期間に前記クロック出力端子を前記第１電圧レベルに固定し、前記低消費電力モード中に前記クロック出力端子を前記第１電圧レベルに保持する回路を含んで構成されており、
前記第２のクロック固定回路セルは、クロック入力端子と前記リテンションフリップフロップへのクロック出力端子を備え、前記低消費電力モードに遷移するときに、前記クロック入力端子が第２電圧レベルにある期間の１／２クロック周期後に前記クロック出力端子を前記第１電圧レベルに固定し、前記低消費電力モード中に前記クロック出力端子を前記第１電圧レベルに保持する回路を含んで構成されている、
ＬＳＩ設計方法。
【請求項２】
請求項１のＬＳＩ設計方法であって、
前記リテンションフリップフロップセルにおいて前記マスターラッチは、前記低消費電力モードの期間に電源供給が遮断される電源線に接続され、
前記リテンションフリップフロップセルにおいて前記スレーブラッチは、前記低消費電力モードの期間に電源供給が維持される電源線に接続され、前記クロック入力端子が第１電圧レベルにある場合には、前記データ出力端子に出力されるデータを保持し、前記クロック入力端子が第２電圧レベルにある場合には、前記マスターラッチの出力を取り込む、
ＬＳＩ設計方法。
【請求項３】
請求項１のＬＳＩ設計方法であって、
前記第１のクロック固定回路セルは、リテンション制御信号入力端子をさらに備え、前記低消費電力モード中にデータを保持するラッチを含んで構成され、前記クロック入力端子が第１電圧レベルにあるときに前記リテンション制御信号入力端子から入力される論理レベルを前記ラッチに転送し、
前記第２のクロック固定回路セルは、リテンション制御信号入力端子をさらに備え、前記低消費電力モード中にデータを保持するラッチとフリップフロップとを含んで構成され、前記クロック入力端子が第２電圧レベルにあるときに前記リテンション制御信号入力端子の入力される論理レベルを前記ラッチに転送し、前記クロック入力端子が第１電圧レベルから前記第２電圧レベルに遷移するときに前記ラッチの出力を前記フリップフロップに転送する、
ＬＳＩ設計方法。
【請求項４】
請求項１のＬＳＩ設計方法であって、
前記ＬＳＩ設計方法は、
高位論理記述から複数のフリップフロップを含む論理回路を生成し、
前記複数のフリップフロップの全部または一部に、前記リテンションフリップフロップセルをマッピングしてリテンションフリップフロップとし、
前記リテンションフリップフロップのクロック入力端子に接続されているクロックのクロック位相を解析し、
前記クロック位相が正相のときには、前記第１のクロック固定回路セルを前記論理回路の前記リテンションフリップフロップのクロック入力端子の入力部に挿入し、
前記クロック位相が逆相のときには、前記第２のクロック固定回路セルを前記論理回路の前記リテンションフリップフロップのクロック入力端子の入力部に挿入し、
前記論理回路を前記ネットリストとして生成する、
ＬＳＩ設計方法。
【請求項５】
請求項４のＬＳＩ設計方法であって、
電源仕様をさらに入力し、
前記電源仕様に基づいて、前記複数のフリップフロップのうち前記低消費電力モードでデータを保持すべきリテンションフリップフロップを特定する、
ＬＳＩ設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低消費電力モードにおいて一部の回路への電源供給を遮断し、その期間に保持の必要な状態やデータをリテンションフリップフロップで保持する半導体集積回路（ＬＳＩ）の設計方法において、特に、正相と逆相のリテンションフリップフロップが混在する場合にも有効な技術に関する。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ）の微細化が進むに伴って、リーク電流が顕著になってきている。ＬＳＩの消費電力を削減するために有効な技術の一つに、スリープモードなどの低消費電力モードにおいて、ＬＳＩの一部への電源供給を遮断する技術がある。スリープモードでは、クロックを停止して演算処理などを止めて待機するため、演算処理などに伴う動的な電力の消費がないので、主にリーク電流に起因する静的な電力の消費が顕著になる。したがって、特にスリープモードには、電源を遮断する技術が有効であるが、スリープモードから通常動作モードに復帰したときに必要な状態やデータは、スリープモード中も保持している必要がある。
【０００３】
そこで、スリープモード中にも電源供給が遮断されない電源に接続された部分をもつ、フリップフロップを設け、これにスリープモード中も保持している必要がある状態やデータを保持する技術を採用するのが、一般的である。このようなフリップフロップをリテンションフリップフロップと呼ぶ。
【０００４】
特許文献１には、リテンションフリップフロップの種々の回路例が開示されている。一般にフリップフロップは、マスターラッチとスレーブラッチを縦続接続して構成される。マスターラッチは、レベルセンスラッチで、クロックがローレベルの期間にデータを取り込みハイレベルの期間に保持する。スレーブラッチもレベルセンスラッチで、クロックがハイレベルの期間にマスターラッチの出力を取り込みローレベルの期間に保持する。これにより、クロックの立上りエッジでデータを取り込む、いわゆる正相のフリップフロップを構成することができる。特許文献１に開示されるフリップフロップは、マスターラッチをスリープモード中に電源を遮断する回路とし、スレーブラッチの電源はスリープモード中も維持される回路構成としている。スリープモード中は、マスターラッチのデータは失われるが、クロックをローレベルに維持することにより、スレーブラッチのデータが保持される。さらにスレーブラッチは閾値電圧が高いトランジスタを使って構成されているので、データ保持時のリーク電流がより効果的に抑制される。
【０００５】
一方、ＬＳＩには、上記のような正相のフリップフロップ以外に、クロックの立下りエッジでデータを取り込む、いわゆる逆相のフリップフロップも使われており、正相のフリップフロップと逆相のフリップフロップを混在して使用する論理回路も少なくない。
【０００６】
特許文献２には、正相のリテンションフリップフロップと逆相のリテンションフリップフロップの両方を含む論理回路が開示されている。すなわち、正相のリテンションフリップフロップはクロックがローレベルの期間にデータを保持し、逆相のリテンションフリップフロップはクロックがハイレベルの期間にデータを保持する。スリープモードの間、それぞれのリテンションフリップフロップに供給されるクロックは適切な電圧レベルに維持される。正相のリテンションフリップフロップには、クロックをスリープモードの間ローレベルに維持する回路が接続されており、逆相のリテンションフリップフロップには、クロックをスリープモードの間ハイレベルに維持する回路が接続されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００８−５３５３００号公報
【特許文献２】特開２０１１−２０５３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一般に論理回路の設計は、ＲＴＬ（Register Transfer Level）などの高位論理記述で行い、ＣＡＤ（Computer Aided Design）などの設計装置で用意されているセルライブラリを使った論理合成によって行われる。
【０００９】
特許文献２に開示される技術を使った論理回路設計では、正相のリテンションフリップフロップと逆相のリテンションフリップフロップのそれぞれを、セルライブラリに用意する必要がある。
【００１０】
ＣＡＤなどの設計装置で用意されているフリップフロップの論理セルは、正相と逆相の区別をしない場合も少なくない。正相のフリップフロップは、クロックの供給源と同位相のクロックを接続して合成され、逆相のフリップフロップは、クロックの供給源と逆位相のクロックを接続して合成される。正相のフリップフロップのみを使って、正相と逆相のクロックのどちらを接続するかで、フリップフロップの動作を決めているのである。
【００１１】
このような設計には、特許文献１に記載されるような、スレーブラッチのみでスリープモード中のデータを保持するフリップフロップを適用することができない。スリープモードでは、クロック発生源において正相クロックがローレベルに固定され、逆相クロックはその反転なのでハイレベルで固定される。逆相クロックが接続されたフリップフロップでは、データはマスターラッチに保持されており、スレーブラッチは取り込みを行っているが保持に至っていない。この状態で電源を遮断すると、マスターラッチは電源供給を失い、保持していたデータを失い、スレーブラッチは未だデータを保持する状態には至っていないので、正しいデータは保持されない。逆相クロックに接続されたフリップフロップの値を保持するためには、マスターラッチの電源をスリープモード中に維持するフリップフロップが必要になる。
【００１２】
さらに、クロックの位相が、動作モードにより変化する回路がある。この場合、マスターあるいはスレーブのどちらか一方のラッチのみの電源をスリープモード中に維持するだけでは、電源遮断時にデータを適切に保持することができない。
【００１３】
この対策として、２つの対策が考えられる。
【００１４】
第１の対策は、マスターラッチとスレーブラッチの両方の電源をスリープモード中に維持することである。これにより、クロックの位相がどちらに固定されても、マスターラッチかスレーブラッチのいずれかで適切なデータが保持されるので、正相と逆相を区別しないフリップフロップセルを使って、正相と逆相のフリップフロップ機能を構成することができる。しかし、この場合、一方のラッチのみの電源をスリープモード中に維持するフリップフロップに比べてリーク電流が概ね倍増し、また閾値電圧の高いトランジスタを使って構成するのでセル面積が増加するという問題がある。
【００１５】
第２の対策は、マスターラッチとスレーブラッチとは別に、状態保持用のラッチまたはフリップフロップを追加することである。しかし、この場合も、セル面積が増加する問題がある。
【００１６】
以上のように、マスターラッチかスレーブラッチのうちの一方のみにスリープモード中の電源維持によるデータ保持機能を備えたリテンションフリップフロップセルを使って、正相のリテンションフリップフロップとともに、逆相クロックや位相可変クロックの接続されたリテンションフリップフロップを構成するには、従来技術では不十分である。新規に設計する場合は、このようなフリップフロップはリテンションを行わない仕様とすることもできる。しかし、ＩＰ（Intellectual Property）ベースの設計のように、既存の設計資産を流用する場合や、設計データを購入して利用する場合には、このようなフリップフロップを特定してリテンションの対象から除外することは困難である。ＩＰを利用する設計者がリテンションすべきフリップフロップを特定することが困難であるために、すべてのフリップフロップをリテンション対象とすることがある。また、購入したＩＰの場合、ＲＴＬを改変することが契約上許されていない場合があり、リテンション対象外にするフリップフロップを適宜変更することができない。
【００１７】
本発明の目的は、マスターラッチかスレーブラッチのうちの一方のみにスリープモードなどの低消費電力モード中の電源維持によるデータ保持機能を備えたリテンションフリップフロップセルを１種類だけ使って、正相リテンションフリップフロップと、逆相リテンションフリップフロップと、正相と逆相の位相可変リテンションフリップフロップとを任意に構成することができるＬＳＩ設計方法を提供することである。
【００１８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００２０】
すなわち、ＬＳＩ設計方法において、セルライブラリに、リテンションフリップフロップセルと正相用クロック固定セルと逆相用クロック固定セルを備える。
【発明の効果】
【００２１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００２２】
すなわち、マスターラッチかスレーブラッチのうちの一方のみにスリープモードなどの低消費電力モード中の電源維持によるデータ保持機能を備えたリテンションフリップフロップセルを１種類だけ使って、正相リテンションフリップフロップと、逆相リテンションフリップフロップと、正相と逆相の位相可変リテンションフリップフロップとを任意に構成することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の代表的な実施の形態に係るＬＳＩ設計方法のフローを示す図である。
【図２】図２は、リテンションフリップフロップセルの一例を示す回路図である。
【図３】図３は、正相用クロック固定セルと逆相用クロック固定セルの一例を示す回路図である。
【図４】図４は、正相と逆相のリテンションフリップフロップを含むＬＳＩの回路例である。
【図５】図５は、図４に示したＬＳＩの動作を説明するタイミングチャートである。
【図６】図６は、位相可変のリテンションフリップフロップを含むＬＳＩの回路例である。
【発明を実施するための形態】
【００２４】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２５】
〔１〕＜正相用と逆相用のクロック固定セルを備えるＬＳＩ設計法＞
低消費電力モードにおいて一部の回路への電源供給を停止しリテンションフリップフロップによってデータを保持するＬＳＩのネットリスト（４）を生成するＬＳＩ設計方法（７０）であって、以下のように構成される。
【００２６】
セルライブラリ（１）を備え、前記セルライブラリは、リテンションフリップフロップセル（１０）と第１のクロック固定セル（２０）と第２のクロック固定セル（３０）とを含む。
【００２７】
前記リテンションフリップフロップセルは、クロック入力端子（１１）とデータ入力端子（１２）とデータ出力端子（１３）とを備え、マスターラッチ（１４）とスレーブラッチ（１５）を含んで構成され、前記スレーブラッチは前記低消費電力モード中に前記クロック入力端子が第１電圧レベルにあるときに前記データ出力端子に出力するデータを保持する。
【００２８】
前記第１のクロック固定回路セルは、クロック入力端子（２１）と前記リテンションフリップフロップへのクロック出力端子（２３）を備え、前記低消費電力モードに遷移するときに、前記クロック入力端子が第１電圧レベルにある期間に前記クロック出力端子を前記第１電圧レベルに固定し、前記低消費電力モード中に前記クロック出力端子を前記第１電圧レベルに保持する回路（２４）を含んで構成されている。
【００２９】
前記第２のクロック固定回路セルは、クロック入力端子（３１）と前記リテンションフリップフロップへのクロック出力端子（３３）を備え、前記低消費電力モードに遷移するときに、前記クロック入力端子が第２電圧レベルにある期間の１／２クロック周期後に前記クロック出力端子を前記第１電圧レベルに固定し、前記低消費電力モード中に前記クロック出力端子を前記第１電圧レベルに保持する回路（３５）を含んで構成されている。
【００３０】
これにより、スレーブラッチのみにスリープモードなどの低消費電力モード中の電源維持によるデータ保持機能を備えたリテンションフリップフロップセルを１種類だけ使って、正相のリテンションフリップフロップと、逆相のリテンションフリップフロップと、正相と逆相の位相可変のリテンションフリップフロップとを任意に構成することができる。
【００３１】
〔２〕＜リテンションフリップフロップセルの回路＞
項１のＬＳＩ設計方法であって、以下のように構成される。
【００３２】
前記リテンションフリップフロップセルにおいて前記マスターラッチは、前記低消費電力モードの期間に電源供給が遮断される電源線（４２）に接続される。
【００３３】
前記リテンションフリップフロップセルにおいて前記スレーブラッチは、前記低消費電力モードの期間に電源供給が維持される電源線（４１）に接続され、前記クロック入力端子が第１電圧レベルにある場合には、前記データ出力端子に出力されるデータを保持し、前記クロック入力端子が第２電圧レベルにある場合には、前記マスターラッチの出力を取り込む。
【００３４】
これにより、スレーブラッチのみにスリープモード中の電源維持によるデータ保持機能を備えたリテンションフリップフロップセルを１種類だけ使って、正相のリテンションフリップフロップと、逆相のリテンションフリップフロップと、正相と逆相の位相可変のリテンションフリップフロップとを任意に構成することができる。
【００３５】
〔３〕＜クロック固定セルの回路＞
項１または項２のＬＳＩ設計方法であって、以下のように構成される。
【００３６】
前記第１のクロック固定回路セルは、リテンション制御信号入力端子（２２）をさらに備え、前記低消費電力モード中にデータを保持するラッチ（２４）を含んで構成され、前記クロック入力端子が第１電圧レベルにあるときに前記リテンション制御信号入力端子から入力される論理レベルを前記ラッチに転送する。
【００３７】
前記第２のクロック固定回路セルは、リテンション制御信号入力端子（３２）をさらに備え、前記低消費電力モード中にデータを保持するラッチ（３４）とフリップフロップ（３５）とを含んで構成され、前記クロック入力端子が第２電圧レベルにあるときに前記リテンション制御信号入力端子の入力される論理レベルを前記ラッチに転送し、前記クロック入力端子が第１電圧レベルから前記第２電圧レベルに遷移するときに前記ラッチの出力を前記フリップフロップに転送する。
【００３８】
これにより、リテンション制御信号により、前記第１と第２のクロック固定セルのそれぞれを制御することができる。
【００３９】
〔４〕＜正相クロックと逆相クロックのそれぞれに対するクロック固定セル挿入＞
項１、項２または項３のＬＳＩ設計方法であって、前記ＬＳＩ設計方法は、以下のステップを含んで構成される。
【００４０】
高位論理記述（２）から複数のフリップフロップを含む論理回路を生成する（ステップ７２）。
【００４１】
その後、前記複数のフリップフロップの全部または一部に、前記リテンションフリップフロップセルをテクノロジマッピングしてリテンションフリップフロップとする（ステップ７４）。
【００４２】
その後、前記リテンションフリップフロップのクロック入力端子に接続されているクロックのクロック位相を解析する（ステップ７５）。
【００４３】
前記クロック位相が正相のときには、前記第１のクロック固定回路セルを前記論理回路の前記リテンションフリップフロップのクロック入力端子の入力部に挿入する（ステップ７６）。
【００４４】
前記クロック位相が逆相のときには、前記第２のクロック固定回路セルを前記論理回路の前記リテンションフリップフロップのクロック入力端子の入力部に挿入する（ステップ７６）。
【００４５】
その後、前記論理回路を前記ネットリストとして生成する（ステップ７７）。
【００４６】
これにより、前記第１または第２のクロック固定セルが、リテンションフリップフロップを駆動するクロックの位相に応じて適切に、ネットリストに自動挿入される。
【００４７】
〔５〕＜電源仕様によりリテンションフリップフロップを特定＞
項４のＬＳＩ設計方法であって、電源仕様（３）をさらに入力し、前記電源仕様に基づいて、前記複数のフリップフロップのうち前記低消費電力モードでデータを保持すべきリテンションフリップフロップを特定する（ステップ７３）。
【００４８】
これにより、リテンションフリップフロップをマッピングするフリップフロップをリテンションの必要なものに限定することができる。
【００４９】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５０】
〔実施の形態１〕ＬＳＩ設計方法のフロー
図１は、本発明の代表的な実施の形態に係るＬＳＩ設計方法のフローを示す図である。
【００５１】
まず、低消費電力モード中の状態（データ）保持を実現するための従来の設計手法について説明する。
【００５２】
入力されたＲＴＬ２などの高位論理記述に対して、エラボレーション（ステップ７１）や論理最適化（ステップ７２）を行った後、リテンション対象のフリップフロップ（Ｆ／Ｆ）を抽出する（ステップ７３）。リテンション対象のフリップフロップは、電源仕様３に基づいて抽出される。電源仕様３には、どのフリップフロップがリテンション対象か、あるいは、それらのフリップフロップがどの制御信号でリテンションの制御を受けるか、などの情報が記述されており、その情報に基づいてリテンション対象のフリップフロップが抽出される。電源仕様３は、例えばＣＰＦ（Common Power Format）やＵＰＦ（Unified Power Format）といったフォーマットで記述することができる。
【００５３】
次に、抽出したリテンション対象のフリップフロップに対して、セルライブラリ１を参照してリテンションフリップフロップセル１０がマッピングされ（ステップ７４）、ネットリスト４として出力される（ステップ７７）。
【００５４】
従来の設計手法によれば、正相と逆相のフリップフロップが混在した場合、あるいは、モードによって正相と逆相の位相可変フリップフロップが存在した場合には、既に述べたような方法によらなければ、適切に設計することはできなかった。すなわち、正相用と逆相用のリテンションフリップフロップセルを予めセルライブラリに備え、ＲＴＬで逆相や位相可変のフリップフロップを特定して適切にマッピングする。あるいは、正相用としても逆相用としても機能するリテンションフリップフロップセルを予めセルライブラリに備えておく必要があった。
【００５５】
そこで、本発明の代表的な実施形態においては、セルライブラリ１にさらに正相用クロック固定セル２０と逆相用クロック固定セル３０とを予め備える。まず従来の設計方法と同様に、入力されたＲＴＬ２などの高位論理記述に対して、エラボレーション（ステップ７１）や論理最適化（ステップ７２）を行った後、リテンション対象のフリップフロップ（Ｆ／Ｆ）を抽出する（ステップ７３）。
【００５６】
テクノロジマッピング（ステップ７４）では、抽出されたリテンション対象のフリップフロップにセルライブラリ１を参照してリテンションフリップフロップセル１０をマッピングする。このリテンションフリップフロップセル１０は、一律に正相用のリテンションフリップフロップセルでよい。
【００５７】
次に、クロックの位相解析を行う（ステップ７５）。クロックの位相解析では、クロックライン上の論理を解析して、逆相クロックや位相可変クロックを抽出する。
【００５８】
次に、クロック固定セルの挿入を行う（ステップ７６）。クロック固定セルの挿入（ステップ７６）では、抽出したクロックラインにステップ７３で抽出したリテンション対象フリップフロップが繋がっているかどうかを判定する。もし繋がっていれば、それぞれのクロックに対してステップ７５におけるクロックの位相解析で求めたクロック位相に応じて、適切なクロック固定セルを挿入する。ステップ７３で抽出したリテンション対象フリップフロップに正相クロックが繋がっていれば正相用クロック固定セル２０を挿入し、逆相クロックが繋がっていれば逆相用クロック固定セル３０を挿入する。
【００５９】
最後に、完成したネットリスト４を出力する（ステップ７７）。
【００６０】
〔実施の形態２〕セルの回路例
図２は、セルライブラリ１に含まれるリテンションフリップフロップセル１０の一例を示す回路図であり、図３は、正相用クロック固定セル２０と逆相用クロック固定セル３０の一例を示す回路図である。
【００６１】
図２に示すリテンションフリップフロップセル１０は、クロック入力端子１１とデータ入力端子１２とデータ出力端子１３を備え、マスターラッチ１４とスレーブラッチ１５によって構成されている。データ入力端子１２から入力されたデータは、クロック入力端子１１がローレベルの期間にマスターラッチ１４に取り込まれハイレベルの期間に保持される。マスターラッチ１４の出力はクロック入力端子１１がハイレベルの期間にスレーブラッチ１５に取り込まれローレベルの期間に保持され、セルのデータ出力端子１３に出力される。通常動作モードでは、入力されるクロックに対し、立上りエッジセンシティブなフリップフロップとして機能する。
【００６２】
マスターラッチは、低消費電力モードでは電源供給が遮断される電源線４２に接続されており、スレーブラッチは、低消費電力モードでも電源供給が維持される電源線４１に接続されている。マスターラッチ１４は、低消費電力モードでは電源供給を遮断されるので、データを保持することはできないが、スレーブラッチ１５は電源供給が維持されるので、データを保持することができる。スレーブラッチ１５は低消費電力モードでも電源供給が維持されるが、クロックがハイレベルであると、電源供給が遮断され保持すべきデータが消失したマスターラッチ１４の出力するデータを取り込んでしまうので、クロックはローレベルに固定する必要がある。
【００６３】
スレーブラッチは、マスターラッチと比較して高閾値のトランジスタを使って構成すると好適である。マスターラッチは低消費電力モードでは、電源供給が遮断されるのでリーク電流を発生させないが、スレーブラッチは、電源が維持されるのでリーク電流を発生させる。高閾値のトランジスタを使って構成することにより、電源供給が維持されてもリーク電流を低く抑えることができる。一般に、高閾値のトランジスタを使って回路を構成するとセル面積は大きくなるので、必要最小限に留めるべきである。このリテンションフリップフロップセルについては、低消費電力モードでも電源が維持されるスレーブラッチのみを高閾値のトランジスタを使って構成すると好適である。
【００６４】
図３において（ａ）に示す正相用クロック固定セル２０は、クロック入力端子２１とリテンション制御信号入力端子２２とクロック出力端子２３を備え、クロックがハイレベルの時にデータを保持するネガティブラッチ２４とＡＮＤゲート２６で構成されている。リテンション制御信号入力端子２２がハイレベルの期間は、クロック入力端子２１に入力されるクロックをそのままクロック出力端子２３に出力する。リテンション制御信号入力端子２２がローレベルに変化した後、クロック入力端子２１に入力されるクロックがハイレベルになったタイミングで、クロック出力端子２３をローレベルに固定する。ネガティブラッチ２４とＡＮＤゲート２６は、低消費電力モードでも電源供給が維持される電源４１に接続されており、低消費電力モードの期間、ネガティブラッチ２４がデータを保持し、クロック出力端子２３をローレベルに固定する。
【００６５】
図３において（ｂ）に示す逆相用クロック固定セル３０は、クロック入力端子３１とリテンション制御信号入力端子３２とクロック出力端子３３を備え、クロックがローレベルの時にデータを保持するポジティブラッチ３４とフリップフロップ３５とＡＮＤゲート３６で構成されている。リテンション制御信号入力端子３２がハイレベルの期間は、クロック入力端子３１に入力されるクロックをそのままクロック出力端子３３に出力する。リテンション制御信号入力端子３２がローレベルに変化した後、クロック入力端子３１に入力されるクロックがローレベルになったタイミングから半サイクル（１／２クロック周期）遅延させて、クロック出力端子３３をローレベルに固定する。ポジティブラッチ３４とフリップフロップ３５とＡＮＤゲート３６は、低消費電力モードでも電源供給が維持される電源４１に接続されており、低消費電力モードの期間、ポジティブラッチ３４がデータを保持し、クロック出力端子３３をローレベルに固定する。
【００６６】
本実施の形態においては、リテンションフリップフロップが低消費電力モードにおいてスレーブラッチのみでデータを保持し、保持するためにクロックをローレベルに固定する必要がある場合について説明したが、本発明はこれには限定されない。スレーブラッチに代えてマスターラッチのみでデータを保持するリテンションフリップフロップを用いる場合、保持するためにクロックをハイレベルに固定する必要がある場合など、他の組み合わせであってもよい。リテンションフリップフロップが低消費電力モードにおいてデータを保持するために固定すべきクロックの論理レベルと、正相用と逆相用のクロック固定セルがクロックを固定すべき論理レベルを、適宜整合させることにより、任意の組み合わせで実施することができる。
【００６７】
〔実施の形態３〕設計されたＬＳＩの回路例１（正相と逆相のフリップフロップの混在）
次に、上で説明した設計方法よって設計されたＬＳＩの回路の一例について説明する。
【００６８】
図４は、正相と逆相のリテンションフリップフロップを含むＬＳＩの回路例である。
【００６９】
リテンションフリップフロップ１０−１と１０−２に供給されているクロックclk1（４６）は、クロックclk４４と同相で、いわゆる正相クロックであり、リテンションフリップフロップ１０−３と１０−４に供給されているクロックclk2（４７）は、クロックclk４４が反転されたクロックclkb４５と同相でいわゆる逆相クロックである。リテンションフリップフロップ１０−１、１０−２、１０−３、および１０−４は、駆動するクロックが正相であるか逆相であるかにかかわらず、リテンションフリップフロップセル１０が一律にマッピングされている。リテンションフリップフロップセル１０は、マスターラッチとスレーブラッチで構成され、マスターラッチは低消費電力モードの期間に電源供給が遮断される電源線４２に接続されており、スレーブラッチは低消費電力モードの期間中も電源供給が維持される電源線４１に接続されている。
【００７０】
正相のリテンションフリップフロップ１０−１と１０−２に供給されているクロック信号線には、正相用クロック固定セル２０−１が挿入されており、逆相のリテンションフリップフロップ１０−３と１０−４に供給されているクロック信号線には、逆相用クロック固定セル３０−１が挿入されている。正相用と逆相用クロック固定セル２０−１、３０−１には、低消費電力モードの期間中に保持すべきデータをリテンションフリップフロップに保持させるための制御信号であるリテンション制御信号retb４３が接続されている。正相用と逆相用クロック固定セル２０−１、３０−１は、低消費電力モードの期間中も電源供給が維持されている電源線４１が接続されている。
【００７１】
図５は、図４に示したＬＳＩの動作を説明するタイミングチャートである。
【００７２】
リテンション制御信号retbは、低消費電力モードの期間中に保持すべきデータをリテンションフリップフロップに保持させるための制御信号である。通常動作モードではハイレベルであり、低消費電力モードで電源供給が遮断される前にローレベルに変化し、通常動作モードに復帰するときには、電源供給が回復された後に、ローレベルからハイレベルに変化する。
【００７３】
クロックclkは、ＬＳＩ全体に共通するいわゆる正相のクロックであり、クロックclkbはその反転クロックである。反転するインバータが低消費電力モードの期間に電源供給が遮断される電源線４２に接続されているため、低消費電力モードのＴ５からＴ８の期間は、電圧レベルが不定となる。
【００７４】
正相用クロック固定セル２０−１は、通常動作モードではクロックclkをそのままクロックclk1として出力する。通常動作モードから低消費電力モードに遷移するときには、リテンション制御信号retbがＴ２とＴ３の間の時刻にローレベルに変化したのを受けて、クロックclkの次の立上り（時刻Ｔ３）から、クロックclk1をローレベルに固定して出力する。通常動作モードに復帰するときは、リテンション制御信号retbがＴ８とＴ９の間の時刻にハイレベルに変化したのを受けて、クロックclkの次の立上り（時刻Ｔ９）から、クロックclk1にclkと同じクロックを出力する。
【００７５】
逆相用クロック固定セル３０−１は、通常動作モードでは反転クロックclkbをそのままクロックclk2として出力する。通常動作モードから低消費電力モードに遷移するときには、リテンション制御信号retbがＴ２とＴ３の間の時刻にローレベルに変化したのを受けて、クロックclkの次の立上り（時刻Ｔ３）から半サイクル遅延させた時刻Ｔ４から、クロックclk2をローレベルに固定して出力する。通常動作モードに復帰するときは、リテンション制御信号retbがＴ８とＴ９の間の時刻にハイレベルに変化したのを受けて、クロックclkの次の立上り（時刻Ｔ９）から半サイクル遅延させた時刻Ｔ１０から、クロックclk2にclkbと同じクロックを出力する。半サイクル遅延させることによって、反転クロックclkbがローレベルである期間にローレベル固定とその解除を行うことができ、そのため、clk2にハザードパルスを発生させることがない。
【００７６】
クロックclk1とclk2は、通常動作モードでは、それぞれ正相クロックclkと逆相クロックclkbと同じクロックとなるので、クロックclk1で駆動されるリテンションフリップフロップ１０−１と１０−２は正相フリップフロップとして機能し、クロックclk2で駆動されるリテンションフリップフロップ１０−３と１０−４は逆相フリップフロップとして機能する。低消費電力モードでは、クロックclk1とclk2はどちらもローレベルに固定されるので、リテンションフリップフロップ１０−１、１０−２、１０−３、および１０−４は、電源供給が維持されているスレーブラッチ側でデータを保持することができる。
【００７７】
以上のように、正相用クロック固定セルまたは逆相用クロック固定セルを、リテンションフリップフロップを駆動するクロックの位相に応じて適切に挿入することにより、同じリテンションフリップフロップセルを正相フリップフロップとしても逆相フリップフロップとしても、マッピングすることができる。また、正相用クロック固定セルと逆相用クロック固定セルは、それぞれ、低消費電力モードでは、クロックclk1とclk2はどちらもローレベルに固定するので、上記同じリテンションフリップフロップセルは、スレーブラッチ側のみが電源供給を維持される、比較的面積の小さいセルで構成することができる。
【００７８】
〔実施の形態４〕設計されたＬＳＩの回路例２（位相可変のフリップフロップ）
次に、上で説明した設計方法よって設計されたＬＳＩの回路の別の例について説明する。
【００７９】
図６は、動作モードによって正相と逆相が切り替えられるいわゆる位相可変のリテンションフリップフロップを含むＬＳＩの回路例である。
【００８０】
正相リテンションフリップフロップ１０−１、１０−２と正相用クロック固定セル２０−１は、図４に示したＬＳＩと同様である。リテンションフリップフロップ１０−５と１０−６は、動作モードによって正相と逆相が切り替えられるいわゆる位相可変のリテンションフリップフロップである。動作モード制御信号mode６１に基づいて、リテンションフリップフロップ１０−５と１０−６を駆動するクロックの位相が可変される。排他的論理和ゲート６２の機能により、動作モード制御信号mode６１がローレベルの時クロック６３は正相になり、ハイレベルの時クロック６３は逆相になる。
【００８１】
リテンションフリップフロップ１０−５と１０−６のクロック入力には、位相可変クロック固定セル５０が挿入されている。位相可変クロック固定セル５０は、クロック入力端子５１、リテンション信号入力端子５２、動作モード制御信号入力端子５３、およびクロック出力端子５４を備えている。位相可変クロック固定セル５０は、正相用クロック固定セル２０−２と逆相用クロック固定セル３０−２とセレクタ５５を備え、mode６１によって与えられる動作モードに基づいて、一方のクロック固定セルを機能させる。mode６１がローレベルで、入力されるクロック６３が正相となる動作モードにおいては、セレクタ５５が正相用クロック固定セル２０−２の出力を選択してクロック出力端子５４を経て、リテンションフリップフロップ１０−５と１０−６を駆動するクロックclk3（６４）を出力する。クロックclk3（６４）には、通常動作では正相クロックが出力され、低消費電力モードの期間はローレベルに固定される。この動作モードでは、リテンションフリップフロップ１０−５と１０−６は正相フリップフロップとして動作していているので、それと整合させるために正相用クロック固定セル２０が選択されている。
【００８２】
mode６１がハイレベルで、入力されるクロック６３が逆相の動作モードにおいては、セレクタ５５が逆相用クロック固定セル３０−２の出力を選択してクロック出力端子５４を経て、リテンションフリップフロップ１０−５と１０−６を駆動するクロックclk3（６４）を出力する。クロックclk3（６４）には、通常動作では逆相クロックが出力され、低消費電力モードの期間は半サイクル遅れてローレベルに固定される。この動作モードでは、リテンションフリップフロップ１０−５と１０−６は逆相フリップフロップとして動作していているので、それと整合させるために逆相用クロック固定セル３０が選択されている。
【００８３】
以上のように、位相可変のリテンションフリップフロップに対しては、正相用クロック固定セルと逆相用クロック固定セルを組み合わせて、位相可変クロック固定セルを構成して挿入することにより、正相用または逆相用と同じリテンションフリップフロップセルを位相可変用としてもマッピングすることができる。
【００８４】
位相可変クロック固定セルは、それ自体を、正相用クロック固定セルと逆相用クロック固定セルとは別個独立のライブラリセルとして同じセルライブラリに備えることもできるし、正相用クロック固定セルと逆相用クロック固定セルをインスタンスするマクロセルとして定義することもできる。
【００８５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００８６】
例えば、上記実施の形態の説明では、信号それぞれについて、正論理または負論理であると仮定して説明したが、負論理として説明した信号を正論理の信号に置き換えるなどの変更は、適宜なし得るものである。
【００８７】
また、上記実施の形態の説明では、リテンションフリップフロップやクロック固定セル内のフリップフロップやラッチについて、単純な回路のみ例示したが、論理的に同等の機能を有する別の回路によって構成することができる。またさらに、リセット機能やスキャン機能などを適宜追加したフリップフロップやラッチに置き換えることもできる。
【００８８】
信号のレベルとして用いた「ハイレベル」、「ローレベル」、「第１の電圧レベル」および「第２の電圧レベル」は、データや状態などの情報を持つ論理レベルであれば足り、アナログの電圧レベルは、その設計において任意に定めることができる。
【符号の説明】
【００８９】
１  セルライブラリ
２  ＲＴＬ
３  電源仕様
４  ネットリスト
１０  リテンションフリップフロップセル
１０−１、１０−２  正相リテンションフリップフロップ
１０−３、１０−４  逆相リテンションフリップフロップ
１０−５、１０−６  位相可変のリテンションフリップフロップ
１４  マスターラッチ
１５  スレーブラッチ
２０  正相用クロック固定セル
２４  ラッチ
３０  逆相用クロック固定セル
３４  ラッチ
３５  フリップフロップ
４１  低消費電力モードで電源供給が維持される電源線
４２  低消費電力モードで電源供給が遮断される電源線
４３  リテンション制御信号
４４  正相クロック
４５  逆相クロック
７０  ＬＳＩ設計方法
７４  テクノロジマッピング
７５  クロックの位相解析
７６  クロック固定セルの挿入
【図１】
2013140884.tif 000003
【図２】
2013140884.tif 000004
【図３】
2013140884.tif 000005
【図４】
2013140884.tif 000006
【図５】
2013140884.tif 000007
【図６】
2013140884.tif 000008