(57)【要約】【課題】  ＨＤＬで記述されたソースコードに基づいて、消費電力低減のための制御を行うことのできるレジスタを含む回路をゲートレベルで定義する情報を生成する論理合成装置を提供する。【解決手段】  論理合成装置１００は、揮発性記憶素子と不揮発性記憶素子とを含み両者間で制御信号に応じて記憶内容を伝達する不揮発性レジスタをゲートレベルで定義した情報等を保持する素子ライブラリ１５０を備え、ソースコード取得部１１０により不揮発性記憶素子の記述を許容するＨＤＬによるソースコードを取得し、構文解析部１３０により、不揮発性レジスタに相当する所定の記述がソースコード中に存在すれば検出して不揮発性レジスタと解釈し、生成部１６０により、解釈結果に基づき、制約条件に応じて素子ライブラリ１５０を利用して、不揮発性レジスタの電源停止制御を行うことで消費電力低減を図り得る回路の回路図を示す情報を生成する。【選択図】  図１
2006190211.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性レジスタを示す所定の記述を許容するハードウェア記述言語を用いて記述されたレジスタトランスファレベルのソースコードに基づいて、ゲートレベルの回路を定義する回路情報を生成する論理合成装置であって、
ソースコード中から不揮発性レジスタを示す所定の記述を検出する不揮発性レジスタ検出手段と、
前記不揮発性レジスタ検出手段により前記所定の記述が検出された場合に、記憶内容を相互に交換可能に接続された、不揮発性記憶素子と揮発性記憶素子との組を、含む回路を定義する回路情報を生成する生成手段とを備える
ことを特徴とする論理合成装置。
【請求項２】
前記所定の記述は、不揮発性レジスタに対して供給する制御信号を示す制御信号記述を含み、
前記生成手段は、制御信号記述により示される制御信号の変化に応じたタイミングで、前記不揮発性記憶素子と前記揮発性記憶素子との間で、記憶内容を伝達するように構成した回路を定義するように、回路情報の前記生成を行う
ことを特徴とする請求項１記載の論理合成装置。
【請求項３】
不揮発性記憶素子に関する所定の記述を許容するハードウェア記述言語を用いて記述されたレジスタトランスファレベルのソースコードに基づいて、ゲートレベルの回路を定義する回路情報を生成する論理合成装置であって、
ソースコード中から不揮発性記憶素子に関する所定の記述を検出する検出手段と、
前記検出手段により前記所定の記述が検出された場合に、不揮発性記憶素子を含む回路を定義する回路情報を生成する生成手段とを備える
ことを特徴とする論理合成装置。
【請求項４】
前記所定の記述は、不揮発性記憶素子を識別するための記述と、当該不揮発性記憶素子に情報を伝達する旨の書込記述と、当該不揮発性記憶素子から情報を伝達する旨の読出記述とを含み、
前記生成手段は、前記書込記述に従って不揮発性記憶素子への入力信号線を定義し、かつ、前記読出記述に従って当該不揮発性記憶素子からの出力信号線を定義するように、回路情報の前記生成を行う
ことを特徴とする請求項３記載の論理合成装置。
【請求項５】
前記書込記述は、特定の記憶素子から不揮発性記憶素子に情報を伝達する旨の記述であり、
前記読出記述は、不揮発性記憶素子から前記特定の記憶素子に情報を伝達する旨の記述であり、
前記生成手段は、不揮発性記憶素子と揮発性記憶素子とを含む回路を定義し、前記書込記述に従って当該不揮発性記憶素子に当該揮発性記憶素子から情報を伝達可能に接続する入力信号線を定義し、かつ、前記読出記述に従って当該揮発性記憶素子に当該不揮発性記憶素子から情報を伝達可能に接続する出力信号線を定義するように、回路情報の前記生成を行う
ことを特徴とする請求項４記載の論理合成装置。
【請求項６】
前記ハードウェア記述言語では記憶素子を定義する記述を許容しており、
前記所定の記述は、記憶素子から識別可能に不揮発性記憶素子を定義する記述を含み、
前記生成手段は、ソースコード中の前記所定の記述以外の記憶素子を定義する記述が含まれているときには、当該記憶素子を定義する記述に対応した揮発性記憶素子を不揮発性記憶素子とは別に含む回路を定義するように、回路情報の前記生成を行う
ことを特徴とする請求項３記載の論理合成装置。
【請求項７】
前記論理合成装置は、
各種の不揮発性記憶素子に係るゲートレベルの回路の特定に要する各種の不揮発性記憶素子情報を記憶する記憶手段と、
生成される情報で示される回路に係る制約条件を取得する取得手段とを備え、
前記生成手段は、前記記憶手段に記憶されている不揮発性記憶素子情報のうち前記取得手段により取得された制約条件に適合する不揮発性記憶素子情報に基づいて、回路に含める不揮発性記憶素子を定義するように、回路情報の前記生成を行う
ことを特徴とする請求項１又は請求項３記載の論理合成装置。
【請求項８】
前記生成手段は、前記不揮発性記憶素子として強誘電体を用いるように、回路情報の前記生成を行う
ことを特徴とする請求項１又は請求項３記載の論理合成装置。
【請求項９】
ハードウェア記述言語を用いて、不揮発性レジスタを示す所定の記述を含めた、レジスタトランスファレベルのソースコードを作成しておき、コンピュータにより当該ソースコードに基づいてゲートレベルの回路を定義する回路情報を生成する回路設計方法であって、
ソースコード中から不揮発性レジスタを示す所定の記述を検出する不揮発性レジスタ検出ステップと、
前記不揮発性レジスタ検出ステップにより前記所定の記述が検出された場合に、記憶内容を相互に交換可能に接続された、不揮発性記憶素子と揮発性記憶素子との組を、含む回路を定義する回路情報を生成する生成ステップとを含む
ことを特徴とする回路設計方法。
【請求項１０】
不揮発性レジスタを示す所定の記述を許容するハードウェア記述言語を用いて記述されたレジスタトランスファレベルのソースコードに基づいて、ゲートレベルの回路を定義する回路情報を生成する論理合成処理をコンピュータに実行させるためのプログラムであって、
前記論理合成処理は、
ソースコード中から不揮発性レジスタを示す所定の記述を検出する不揮発性レジスタ検出ステップと、
前記不揮発性レジスタ検出ステップにより前記所定の記述が検出された場合に、記憶内容を相互に交換可能に接続された、不揮発性記憶素子と揮発性記憶素子との組を、含む回路を定義する回路情報を生成する生成ステップとを含む
ことを特徴とするプログラム。
【請求項１１】
不揮発性記憶素子に関する所定の記述を許容するハードウェア記述言語を用いて記述されたレジスタトランスファレベルのソースコードに基づいて、ゲートレベルの回路を定義する回路情報を生成する論理合成処理をコンピュータに実行させるためのプログラムであって、
前記論理合成処理は、
ソースコード中から不揮発性記憶素子に関する所定の記述を検出する検出ステップと、
前記検出ステップにより前記所定の記述が検出された場合に、不揮発性記憶素子を含む回路を定義する回路情報を生成する生成ステップとを含む
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを利用してディジタル回路を設計する技術に関し、特に、ハードウェア記述言語を用いて記述されたソースコードから回路情報を生成する論理合成技術に関する。
【背景技術】
【０００２】
一般にＬＳＩ（Large Scale Integration）設計は、例えば、仕様設計、機能設計、ゲートレベル設計、トランジスタレベル設計、レイアウト設計等といった順に、複数の段階を経てなされる。
機能設計とゲートレベル設計とに関しては、設計者が、レジスタトランスファレベル（ＲＴＬ：Register Transfer Level）の回路をＨＤＬ（Hardware Description Language）を用いて記述したソースコードを作成し、そのソースコードに基づいて、コンピュータ上で動作する論理合成ツール（以下、「論理合成装置」という。）にゲートレベル等の一層詳細な回路の設計情報を自動生成させるトップダウン設計と呼ばれる手法が従来広く用いられている（例えば、特許文献１参照）。
【０００３】
この手法によれば、設計者は、ＨＤＬによりハードウェア表現の抽象度が高く記述量の少ないソースコードを記述することで、効率的にゲートレベル等の回路の情報を得ることができるようになる。
従来の論理合成装置は、ＨＤＬによる記憶素子の記述に基づいて、基本的には、比較的高速である揮発性記憶素子を含む回路を示すＬＳＩの設計情報を生成する。なお、例えばＨＤＬの１つでありＩＥＥＥ Ｓｔｄ−１３６４として標準化されたＶｅｒｉｌｏｇＨＤＬでは記述「ｒｅｇ」により記憶素子を示す。揮発性記憶素子は、例えばＤＲＡＭ（Dynamic Random Access Memory）の記憶素子、ＳＲＡＭ（Static Random Access Memory）の記憶素子等であり、電力を供給している限り記憶内容を保持する。
【０００４】
ところで、ＬＳＩ設計において消費電力の低減は、重要課題の１つである。このため、従来、ある回路が信号処理を行わない期間に、その回路への印加電圧を低下させること、或いはその回路の動作周波数を低下させることで、回路の消費電力を低減させる技術が開発されている（例えば、非特許文献１参照）。
【特許文献１】米国特許第５５３０８４１号明細書
【非特許文献１】H. Blanchard、他５名、"Dynamic Power Management for Embedded Systems"、[online]、IBM Austin Research Lab、[平成１６年１１月９日検索］、インターネット＜URL:http://www.research.ibm.com/arl/projects/papers/DPM_V1.1.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ある期間においてレジスタを構成する回路へ印加電圧を低下させる方法又はある期間においてその回路の動作周波数を変化させる方法とは別の特定の方法により消費電力低減のための制御を行うことができるようにしたレジスタを、設計者がＨＤＬを用いて容易に記述できるようにする目的でなされたものである。
即ち、本発明は、ＨＤＬで記述されたソースコードに基づいて、消費電力低減のための制御を行うことのできるレジスタを含む回路をゲートレベルで定義する情報を生成する論理合成装置を提供することを目的とし、また、そのレジスタの構成要素をＨＤＬで記述できるようにするための論理合成装置を提供することを目的とする。また、消費電力低減のための制御を行うことのできるレジスタを含む回路の設計を容易化する回路設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成すべく本発明に係る論理合成装置は、不揮発性レジスタを示す所定の記述を許容するハードウェア記述言語を用いて記述されたレジスタトランスファレベルのソースコードに基づいて、ゲートレベルの回路を定義する回路情報を生成する論理合成装置であって、ソースコード中から不揮発性レジスタを示す所定の記述を検出する不揮発性レジスタ検出手段と、前記不揮発性レジスタ検出手段により前記所定の記述が検出された場合に、記憶内容を相互に交換可能に接続された、不揮発性記憶素子と揮発性記憶素子との組を、含む回路を定義する回路情報を生成する生成手段とを備えることを特徴とする。
【０００７】
本発明は、レジスタの消費電力低減のための制御の方法として、データの入出力のない期間においてレジスタへの電力供給を絶つという方法を採用することを想定してなされており、このため電力供給を絶っている期間においてもレジスタの記憶内容を保持するために、レジスタの構成要素に不揮発性記憶素子を含めて、電力供給を絶っている間は不揮発性記憶素子にデータを保持させておくようにしたレジスタを、ＨＤＬにより記述できるようにするという着想から得られたものである。なお、通常は比較的高速な揮発性記憶素子にデータを記憶させてデータアクセス可能にし、データアクセスがなく電力供給を絶っている間はデータを不揮発性記憶素子に一時的に退避しておくというレジスタは、電力消費を抑制する上で有用となる。
【０００８】
また、上記目的を達成すべく本発明に係る回路設計方法は、ハードウェア記述言語を用いて、不揮発性レジスタを示す所定の記述を含めた、レジスタトランスファレベルのソースコードを作成しておき、コンピュータにより当該ソースコードに基づいてゲートレベルの回路を定義する回路情報を生成する回路設計方法であって、ソースコード中から不揮発性レジスタを示す所定の記述を検出する不揮発性レジスタ検出ステップと、前記不揮発性レジスタ検出ステップにより前記所定の記述が検出された場合に、記憶内容を相互に交換可能に接続された、不揮発性記憶素子と揮発性記憶素子との組を、含む回路を定義する回路情報を生成する生成ステップとを含むことを特徴とする。
【発明の効果】
【０００９】
上述の構成を備える本発明に係る論理合成装置によれば、揮発性レジスタに相当する速度性能を発揮し得る不揮発性レジスタを含む回路を、抽象度の高く記述量の少ないＨＤＬを用いて設計者が容易に設計できるようになる。
ここで、前記所定の記述は、不揮発性レジスタに対して供給する制御信号を示す制御信号記述を含み、前記生成手段は、制御信号記述により示される制御信号の変化に応じたタイミングで、前記不揮発性記憶素子と前記揮発性記憶素子との間で、記憶内容を伝達するように構成した回路を定義するように、回路情報の前記生成を行うこととしてもよい。
【００１０】
これにより、不揮発性レジスタへの電力供給を停止する期間に連動するように制御信号を定めることにより、電力供給期間中は揮発性記憶素子にデータを記憶させ、電力供給停止期間中は不揮発性記憶素子にデータを退避させて、レジスタの記憶内容を消失することなく消費電力の抑制するような回路を比較的容易に設計することが可能になる。
また、本発明に係る論理合成装置は、不揮発性記憶素子に関する所定の記述を許容するハードウェア記述言語を用いて記述されたレジスタトランスファレベルのソースコードに基づいて、ゲートレベルの回路を定義する回路情報を生成する論理合成装置であって、ソースコード中から不揮発性記憶素子に関する所定の記述を検出する検出手段と、前記検出手段により前記所定の記述が検出された場合に、不揮発性記憶素子を含む回路を定義する回路情報を生成する生成手段とを備えることとしてもよい。
【００１１】
これにより、上記目的の１つである消費電力制御を可能ならしめるレジスタの構成要素をＨＤＬで記述できるようにすることが達成される。即ち、従来ＨＤＬで特に不揮発性記憶素子が記述できなかったところ、この本発明に係る論理合成装置によれば、ＨＤＬを用いて、上述の不揮発性レジスタのような、不揮発性記憶素子を含む回路を設計できるようになる。
【００１２】
また、前記所定の記述は、不揮発性記憶素子を識別するための記述と、当該不揮発性記憶素子に情報を伝達する旨の書込記述と、当該不揮発性記憶素子から情報を伝達する旨の読出記述とを含み、前記生成手段は、前記書込記述に従って不揮発性記憶素子への入力信号線を定義し、かつ、前記読出記述に従って当該不揮発性記憶素子からの出力信号線を定義するように、回路情報の前記生成を行うこととしてもよい。
【００１３】
これにより、不揮発性記憶素子へのデータの入出力の定義をするソースコード中の記述に従って不揮発性記憶素子への入出力用の配線が定義された回路図が生成されるようになる。
また、前記書込記述は、特定の記憶素子から不揮発性記憶素子に情報を伝達する旨の記述であり、前記読出記述は、不揮発性記憶素子から前記特定の記憶素子に情報を伝達する旨の記述であり、前記生成手段は、不揮発性記憶素子と揮発性記憶素子とを含む回路を定義し、前記書込記述に従って当該不揮発性記憶素子に当該揮発性記憶素子から情報を伝達可能に接続する入力信号線を定義し、かつ、前記読出記述に従って当該揮発性記憶素子に当該不揮発性記憶素子から情報を伝達可能に接続する出力信号線を定義するように、回路情報の前記生成を行うこととしてもよい。
【００１４】
これにより、不揮発性記憶素子と揮発性記憶素子との間で双方向に記憶内容を伝達できるように両素子が接続された回路図が生成可能となる。
また、前記ハードウェア記述言語では記憶素子を定義する記述を許容しており、前記所定の記述は、記憶素子から識別可能に不揮発性記憶素子を定義する記述を含み、前記生成手段は、ソースコード中の前記所定の記述以外の記憶素子を定義する記述が含まれているときには、当該記憶素子を定義する記述に対応した揮発性記憶素子を不揮発性記憶素子とは別に含む回路を定義するように、回路情報の前記生成を行うこととしてもよい。
【００１５】
これにより、揮発性記憶素子と不揮発性記憶素子とを区別してＨＤＬによりソースコードを記述することができるようになる。
また、前記論理合成装置は、各種の不揮発性記憶素子に係るゲートレベルの回路の特定に要する各種の不揮発性記憶素子情報を記憶する記憶手段と、生成される情報で示される回路に係る制約条件を取得する取得手段とを備え、前記生成手段は、前記記憶手段に記憶されている不揮発性記憶素子情報のうち前記取得手段により取得された制約条件に適合する不揮発性記憶素子情報に基づいて、回路に含める不揮発性記憶素子を定義するように、回路情報の前記生成を行うこととしてもよい。
【００１６】
これにより、論理合成装置に、チップ面積、速度性能等についての半導体チップの要件を示す制約条件を与えると、その制約条件に適合した回路の定義情報が出力されるようになる。
また、前記生成手段は、前記不揮発性記憶素子として強誘電体を用いるように、回路情報の前記生成を行うこととしてもよい。
【００１７】
これにより、フラッシュメモリより書込み性能が大幅に高く１ビット単位でデータの書き替えが可能な強誘電体を用いて、電力供給していない間もデータを保持する高性能な不揮発性レジスタを含む回路の設計をＨＤＬにより容易に行えるようになる。また、強誘電体容量は、ＣＭＯＳロジックとの製造プロセスでの親和性が高いため、ＣＭＯＳロジックにおける消費電力抑制の制御に有用である。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態に係る論理合成装置について説明する。
＜概要＞
本発明の実施形態に係る論理合成装置は、ＬＳＩ等の半導体チップの設計を支援する装置であり、抽象度の高い言語であるＨＤＬにより、半導体チップに含ませる不揮発性レジスタに関する記述を可能にする装置である。
【００１９】
即ち、この実施形態に係る論理合成装置は、従来のＨＤＬにより記述されたソースコードに基づいて、ゲートレベルで回路を定義した情報、つまり回路図を表す情報を、生成する従来の論理合成装置の機能に加えて、ソースコード中に不揮発性レジスタに関する記述を含めることを許容した新たなＨＤＬに対応し、その不揮発性レジスタに関する記述に基づいて不揮発性レジスタを含む回路をゲートレベルで定義した情報を出力する機能を有する装置である。
＜構成＞
図１は、本発明の実施形態に係る論理合成装置１００の機能構成図である。
【００２０】
論理合成装置１００は、ＣＰＵ、メモリ、ハードディスク装置等を備えたコンピュータにより実現され、機能面に着目すると、図１に示すように、ソースコード取得部１１０、回路ライブラリ１２０、構文解析部１３０、制約条件取得部１４０、素子ライブラリ１５０、生成部１６０及び出力部１７０を有する。
ここで、ソースコード取得部１１０は、ハードディスク等の記録媒体に記録されたソースコードを読み出して構文解析部１３０に伝達する機能を有するインタフェースである。このソースコードは、不揮発性レジスタに関する記述を許容するＨＤＬによりＲＴＬで記述されたものである。
【００２１】
回路ライブラリ１２０は、特定のモジュール名とそのモジュールの内容を示すＨＤＬによる記述とを対応付けた情報をモジュール毎に保持している記録媒体の一領域であり、ソースコード中の特定のモジュール名の記述を、その内容を示す記述に置き換えるために用いられる。
構文解析部１３０は、ソースコード取得部１１０により読み出されたソースコードを、回路ライブラリ１２０を参照しつつ、ＨＤＬの言語仕様に従って解釈し、つまり構文解析を行い、構文解析結果に基づいて、データフローグラフで表されるようなデータフローの解析を行う機能を有する。この構文解析部１３０は、特に、ソースコード中の、不揮発性レジスタや不揮発性記憶素子に関する記述を、解釈する機能を担う不揮発性記憶記述検出部１３１を備えている。
【００２２】
制約条件取得部１４０は、チップ面積、速度性能等についての半導体チップの要件を示す制約条件情報を、外部の記録媒体等から読み出して生成部１６０に伝達する機能を有する。
素子ライブラリ１５０は、各種の回路素子それぞれを実現するための性能やサイズの異なる各種ハードウェアを特定の半導体テクノロジに応じた各種セルに対応するようにしてゲートレベルで定義する情報を、保持している記録媒体の一領域であり、例えば性能やサイズの異なる各種の不揮発性記憶素子を定義した不揮発性記憶素子情報群や、各種の揮発性記憶素子を定義した揮発性記憶素子情報群や、各種の組み合わせ論理回路を定義した組み合わせ論理回路情報群や、各種の不揮発性レジスタを定義した不揮発性レジスタ情報群等を保持している。
【００２３】
生成部１６０は、構文解析部１３０の解析結果に基づいて、回路図を表す情報を生成する機能を有し、スケジューリング部１６１及び素子割付部１６２を備える。
ここで、スケジューリング部１６１は、構文解析部１３０によるデータフロー解析の結果に基づいて、ソースコードに記述された各モジュールに相当する各回路部分の動作タイミングを特定するためのスケジューリングを行う機能を有し、素子割付部１６２は、スケジューリングの結果に基づき、素子ライブラリ１５０を参照して、各モジュールに各ハードウェアを割り付ける機能を有する。
【００２４】
また、出力部１７０は、生成部１６０によりハードウェアの割り付けがなされて生成された、回路図を表す情報、つまりゲートレベルで回路を定義した情報を、論理合成装置１００の外部に出力する機能を有する。
＜データ＞
まず、上述した論理合成装置１００の構文解析部１３０によりＨＤＬの言語仕様に従った構文解析に用いられるデータ（以下、「記述子リスト」という。）について説明する。
【００２５】
図２は、ＨＤＬの記述子リストを示す図である。
同図に示すように、記述子リスト２００は、論理合成装置１００がサポートするＨＤＬが許容する記述子を列挙したリストであり、構文解析部１３０は、基本的には従来の論理合成装置と同様に、リスト中の各記述子に対応して、記述子毎に固有の解析処理を行う。
但し、記述子リスト２００には、従来のＨＤＬとは異なり不揮発性レジスタ或いは不揮発性記憶素子に関する記述子、例えば、ｎｖｒｅｇ、ｓｔｏｒｅ＠、ｒｅｃａｌｌ＠等が含まれている。
【００２６】
構文解析部１３０は、例えば、ｉｎｐｕｔは、入力ポートとして識別し、ｏｕｔｐｕｔは出力ポートとして識別し、ａｌｗａｙｓ＠は、そのａｌｗａｙｓ＠のパラメータとなるセンシティビティリストで記述される条件が発生した度に、対応する動作を実行するブロックを表すものとして識別する点では従来の論理合成装置における構文解析部と同様であるが、記憶素子を示す従来の表記ｒｅｇを、揮発性記憶素子として識別し、ｎｖｒｅｇは、不揮発性記憶素子として識別する。また、ｓｔｏｒｅ＠及びｒｅｃａｌｌ＠は、いずれもａｌｗａｙｓ＠と同じ働きのブロックを表すものとして識別した上で、それぞれ、不揮発性記憶素子に揮発性記憶素子から記憶内容を伝達するブロック、揮発性記憶素子に不揮発性記憶素子から記憶内容を伝達するブロックを表すものとして識別する。
【００２７】
続いて、論理合成装置１００のソースコード取得部１１０の取得対象となるソースコードについて説明する。
図３は、ＨＤＬにより記述されたソースコードの内容例を示す図である。
同図に示したソースコード３００は、ＩＥＥＥ Ｓｔｄ−１３６４のＨＤＬに、ｎｖｒｅｇ、ｓｔｏｒｅ＠、ｒｅｃａｌｌ＠の記述子を追加した仕様のＨＤＬにより記述されている。
【００２８】
このソースコード３００は、揮発性レジスタに相当する「ｆｆ１」という名称のモジュール３１０と、不揮発性レジスタに相当する「ｎｖｄｆｆ１」という名称のモジュール３２０と、加算を行う組み合わせ論理回路に相当する「ｐ」という名称のモジュール３３０と、これら３つのモジュールを包含する回路に相当する「ｌｏｇｉｃ」という名称のモジュール３４０とについての記述を含んでいる。
【００２９】
構文解析部１３０による解釈の面から特徴的なソースコード３００中の記述内容について説明すると、記述内容３０１は、揮発性記憶素子の存在を意味し、記述内容３０２は、不揮発性記憶素子の存在を意味し、記述内容３５０は、入力ポートからの入力信号ＮＭＬの立ち下がりエッジでその揮発性記憶素子からその不揮発性記憶素子へと記憶内容を伝達する旨を意味し、記述内容３６０は、入力ポートからの入力信号ＮＭＬの立ち上がりエッジでその不揮発性記憶素子からその揮発性記憶素子へと記憶内容を伝達する旨を意味している。
【００３０】
なお、回路ライブラリ１２０は、設計支援のために、一般に設計者に標準的な利用され得ることを想定して作成されたモジュールの内容と名称とを対応付けて予め格納しており、例えば、ソースコード３００中に示したモジュール３２０の部分の記述を含めている。その例の場合では、ソースコード３００中においてはモジュール３２０の記述を含めていなくても、構文解析の結果は、モジュール３２０の記述を含めている場合と同様になる。
【００３１】
次に、素子ライブラリ１５０中の不揮発性レジスタ情報１、２、・・・が表す回路構成内容の例について図４〜図７を用いて説明する。
図４は、素子ライブラリ中の不揮発性レジスタ情報が表す回路構成の一部を示す図である。
図４の例では、不揮発性レジスタとして強誘電体を用いたＤフリップフロップを示している。
【００３２】
素子５０１〜５０４は、強誘電体容量であり、素子５０５、５０６はそれぞれ、電圧ＰＬＢ０、ＰＬ１により強誘電体容量を駆動するドライバであり、素子５０１〜５０４及び素子５０８〜５１４によりＤフリップフロップの基本機能が実現される。
図５及び図６は、不揮発性レジスタ情報が表す複数の不揮発性レジスタの回路構成例を示す図である。
【００３３】
図５では、内部制御信号発生器部６０４は、制御信号ＮＭＬに応じて各種内部信号を生成する回路であり、その各種内部信号は、図４に示す回路部分に相当する不揮発性のＤフリップフロップ６０１〜６０３を制御するためのものである。また、図６に示す回路では、図５に示した内部制御信号発生器部６０４を不揮発性のＤフリップフロップ７０１〜７０３に内蔵させている。
【００３４】
図７は、図４及び図５に構成を示した不揮発性レジスタの各部における信号の相互関係を示すタイミングチャートである。
ここで、図７に即して図４及び図５で示した不揮発性レジスタの動作を説明する。
省電力制御のための制御信号ＮＭＬは、不揮発性レジスタへの電力供給を続けている間は高レベル（HIGH）に維持され、電力供給を遮断する前に低レベル（LOW）にされ、電力供給を遮断している間は低レベルに維持され、電力供給を再開した後に高レベルにされることを想定した信号である。
【００３５】
印加電圧Ｖｄｄが高レベルである電源確保状態においては、制御信号ＮＭＬが高レベルである限り、不揮発性レジスタは揮発性のＤフリップフロップと同様の動作を行う。
電源確保状態から制御信号ＮＭＬが低レベルに変化した情報退避状態においては、不揮発性レジスタは揮発性のＤフリップフロップが保持するデータを強誘電体容量に転送し、つまり、制御信号ＮＭＬが低レベルに変化したときに内部制御信号発生器部６０４により図７に示すような関係の信号ＩＮＭＬ、ＸＩＮＭＬ、ＰＬＢ０、ＰＬＢ１、ＳＡＮ、ＳＡＰを生成し、これらの信号により揮発性のＤフリップフロップによりノードＡ、Ｂ（図４参照）に保持されていた相補なデータを、強誘電体容量の分極へ変換する。
【００３６】
情報退避状態の終わりに印加電圧Ｖｄｄを０Ｖ（低レベル）にして電源遮断状態に遷移したときには、不揮発性レジスタは、強誘電体容量においてデータを保持し続ける。
また、電源遮断状態から印加電圧Ｖｄｄを高レベルに変化させたところの情報復帰状態においては、不揮発性レジスタは、強誘電体容量の分極状態をＤフリップフロップへの電圧に変換する。
【００３７】
つまり、素子ライブラリ１５０中の不揮発性レジスタ情報により定義される不揮発性レジスタは、このような不揮発性レジスタは、制御信号ＮＭＬを電力供給との関係上適切に与える限り、電力供給時には揮発性レジスタと同じ性能で動作し、電源遮断時においても記憶内容を消失させることのない回路である。
また、素子ライブラリ１５０中の不揮発性記憶素子情報群は、各種材料、各種サイズの不揮発性記憶素子に係る不揮発性記憶素子情報であり、例えば、不揮発性記憶素子として機能するように配線接続関係等を定めた強誘電体を含む回路を示す情報や、ＥＥＰＲＯＭ型、ＮＯＲ型或いはＮＡＮＤ型のフラッシュメモリを含む回路を示す情報等である。
＜動作＞
以下、論理合成装置１００の動作について、図３のソースコードが入力された場合を想定して具体的に説明する。
【００３８】
図８は、論理合成装置１００の動作を示すフローチャートである。
まず、論理合成装置１００のソースコード取得部１１０は、図３にその内容を示すソースコードが記録されている記録媒体等にアクセスしてソースコードを読み出して構文解析部１３０に伝える（ステップＳ１１）。
続いて、構文解析部１３０は、記述子リスト２００に基づき、ソースコード中の各記述を解釈した上で、データフローグラフを作成する（ステップＳ１２）。これにより、「ｌｏｇｉｃ」というモジュール３４０の記述に基づき、「ｐ」というモジュール３３０のインスタンス（実体）は、「ｆｆ１」というモジュール３１０のインスタンスと「ｎｖｄｆｆ１」というモジュール３２０のインスタンスとの両方の出力に依存していると解析される。
【００３９】
また、構文解析部１３０は、モジュール３１０の記述内容は、入力と出力と記憶素子との記述の関係から揮発性レジスタであると解釈し、また、モジュール３２０の記述内容は、ｒｅｇ、ｎｖｒｅｇ、ｓｔｏｒｅ＠、ｒｅｃａｌｌ＠等の記述子から、その揮発性レジスタに相当する記述に加えて、記述内容３０２、記述内容３５０及び記述内容３６０を含むことに基づいて不揮発性レジスタであると解釈する。
【００４０】
次に、制約条件取得部１４０により制約条件情報を取得して、この制約条件情報に従って、生成部１６０は、構文解析の結果に基づくスケジューリングと（ステップＳ１３）、素子のアロケーションとを行う（ステップＳ１４）。
このスケジューリングは、データフローグラフに基づき演算等の回路動作内容を各クロックサイクルに割り当てることである。このスケジューリングにおいては、レジスタや組み合せ論理回路の各出力段の到達時間を合わせる必要に応じて、追加の揮発性子レジスタの挿入等が行われる。
【００４１】
また、素子のアロケーションは、素子ライブラリ１５０を参照して、各モジュールのインスタンスに対して、ハードウェアとしての素子又は回路を割り当て、その結果として回路をゲートレベルで定義する情報を生成することである。
図３に示したソースコード３００に基づく場合には、素子のアロケーションにより、「ｌｏｇｉｃ」というモジュール３４０に相当する回路の構成要素として、揮発性レジスタ、不揮発性レジスタ、及び加算を行う組み合わせ論理回路が含まれ、揮発性レジスタの記憶内容の出力端子と不揮発性レジスタの記憶内容の出力端子との両方を組み合わせ論理回路の２つの入力端子と結合してなる回路のゲートレベルでの定義情報が生成される。この「ｌｏｇｉｃ」というモジュール３４０に相当する回路４００を図９に示す。
【００４２】
図９は、図３に示すソースコード３００に対応する回路図である。
回路４００は、揮発性記憶素子４１１を含んで構成される揮発性レジスタ４１０と、不揮発性記憶素子４２１及び揮発性記憶素子４２２を含んで構成される不揮発性レジスタ４２０と、組み合わせ論理回路４３０とを構成要素とする。
なお、素子のアロケーションにおいては、例えば不揮発性レジスタと解釈されているモジュールのインスタンスに対しては、制約条件情報に応じて、素子ライブラリ中の、不揮発性レジスタのゲートレベルでの定義情報である不揮発性レジスタ情報１、２・・・（図１参照）という不揮発性レジスタ情報群のうちのいずれか１つで示される不揮発性レジスタ構成回路が割り当てられる。
【００４３】
最後に、論理合成装置１００の出力部１７０は、素子のアロケーションの結果である回路図、つまりゲートレベルで回路を定義した回路情報を外部に出力する（ステップＳ１５）。この出力としては、例えば、記録媒体への回路情報の記録や、ディスプレイ装置への回路図の表示やプリンタを介しての回路図の印刷を想定している。
＜考察＞
上述した論理合成装置１００によりソースコード３００に基づいて生成された回路図により表される回路を用いて、消費電力低減のための制御を行う方法について説明する。
【００４４】
まず、回路４００を制御する制御装置において、回路４００内の不揮発性レジスタ４２０へのデータの入出力のない期間Ｔについて特定する。ここでいう不揮発性レジスタは、揮発性記憶素子と、不揮発性記憶素子、例えば強誘電体容量とを含むものである。
制御装置は、初期状態においては、不揮発性レジスタに入力する制御信号ＮＭＬを高レベルに維持しておき、不揮発性レジスタへの電力供給を行っておく。その後、制御装置は、不揮発性レジスタ４２０へのデータの入出力のない期間Ｔにおいて、制御信号ＮＭＬを低レベルにし、その後に不揮発性レジスタへの電力供給を遮断することで、消費電力を低減させる。その後、その期間Ｔの終了前に、不揮発性レジスタへの電力供給を再開して制御信号ＮＭＬを高レベルにする。
【００４５】
これに対応する不揮発性レジスタの動作を説明すると、例えば電力供給を１．２Ｖの電圧印加により行うこととすれば、不揮発性レジスタは、制御信号ＮＭＬが高レベルから低レベルに遷移したことにより、内部の揮発性記憶素子から内部の不揮発性記憶素子に記憶内容を伝達し、その後は、不揮発性レジスタへの印加電圧Ｖｄｄが、０Ｖになっても不揮発性記憶素子が記憶内容を保持し続け、その後に不揮発性レジスタへ１．２Ｖの電圧Ｖｄｄが印加された後で制御信号ＮＭＬが低レベルから高レベルに遷移する前に不揮発性記憶素子から揮発性記憶素子に記憶内容を伝達する（図７参照）。従って、１．２Ｖの電圧印加がなされており制御信号ＮＭＬが高レベルである間は、この不揮発性レジスタは、揮発性レジスタと同等の働きをすることになる。
【００４６】
このように、ＨＤＬで不揮発性記憶素子を記述したソースコードに基づいて論理合成の結果として生成された回路においては、レジスタへのデータの入出力のない期間において、そのレジスタへの印加電圧をゼロにすることができるため、消費電力の低減という効果が発揮される。
＜補足＞
以上、本発明に係る論理合成装置について実施形態に基づいて説明したが、以下のように変形することもでき、本発明は上述の実施形態で示した論理合成装置に限られないことは勿論である。
【００４７】
（１）実施形態ではＨＤＬとしてＩＥＥＥ Ｓｔｄ−１３６４を若干変形した例を示したが、ＨＤＬの言語仕様がこれに限られることはなく、ＨＤＬの言語仕様として、不揮発性記憶素子と揮発性記憶素子とを区別でき、記憶内容を相互に伝達可能に記述できる仕様を含ませて、その仕様に対応するように論理合成装置内の構文解析部を構築することとしてもよい。
【００４８】
（２）実施形態で示したＲＴＬのソースコードは、設計者により記述されたものであってもよいし、また、設計者により記述された、ＲＴＬより抽象度の高い動作記述コードに基づいて動作合成ツール等により動作合成した結果として生成されたものであってもよい。
（３）実施形態では論理合成装置の出力部１７０がゲートレベルで回路を定義した回路情報を外部に出力することとしたが、更にトランジスタレベルの回路情報を生成し、セルの配置、配線経路等のレイアウトを決定し、その結果であるトランジスタレベルの回路情報やレイアウト図を外部に出力することとしてもよい。
【００４９】
（４）論理合成装置は、論理合成に際して、論理最適化を行うこととしても良い。
（５）実施形態では、不揮発性記憶素子と揮発性記憶素子との間で記憶内容を伝達する記述のブロックをｓｔｏｒｅ＠、ｒｅｃａｌｌ＠という記述子を用いて明示するＨＤＬの言語仕様例を示したが、これらの両方の記述子を、従来のａｌｗａｙｓ＠という記述子で表すこととしてもよく、論理合成装置においては、ｒｅｇとｎｖｇｅｇとを定義したモジュールにおけるａｌｗａｙｓ＠で示されるブロックの内容が制御信号ＮＭＬの立ち下がりエッジで不揮発性記憶素子にその他の記憶素子から記憶内容が伝達され、制御信号ＮＭＬの立ち上がりエッジで不揮発性記憶素子からその他の記憶素子へと記憶内容が伝達されるものであれば不揮発性レジスタと判断することとしてもよい。また、論理合成装置は、このようなモジュールを不揮発性レジスタと解釈しなくても、揮発性記憶素子と不揮発性記憶素子をソースコードの記述に従って連結するような回路の情報を生成するように構成されたものであればよい。
【００５０】
（６）実施形態では、不揮発性レジスタを実現するための強誘電体を用いたＤフリップフロップの例を示したが、Ｄフリップフロップに限られることはなく、インバータが２つ結合されるようなラッチ回路を備えるものであればよい。
（７）論理合成装置における各処理（図８等参照）をプロセッサに実行させるためのプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。
【００５１】
このような記録媒体には、ＩＣカード、ハードディスク、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布されたプログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがそのプログラムを実行することにより実施形態で示した論理合成装置の機能が実現されるようになる。
【産業上の利用可能性】
【００５２】
本発明に係る論理合成装置は、ＬＳＩ等のディジタル回路の設計段階において設計支援ツールとして利用され得る。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態に係る論理合成装置１００の機能構成図である。
【図２】ＨＤＬの記述子リストを示す図である。
【図３】ＨＤＬにより記述されたソースコードの内容例を示す図である。
【図４】素子ライブラリ中の不揮発性レジスタ情報が表す回路構成の一部を示す図である。
【図５】不揮発性レジスタ情報が表す複数の不揮発性レジスタの回路構成例を示す図である。
【図６】不揮発性レジスタ情報が表す複数の不揮発性レジスタの回路構成例を示す図である。
【図７】不揮発性レジスタの各部における信号の相互関係を示すタイミングチャートである。
【図８】論理合成装置１００の動作を示すフローチャートである。
【図９】ソースコード例に対応する回路図である。
【符号の説明】
【００５４】
１００    論理合成装置
１１０    ソースコード取得部
１２０    回路ライブラリ
１３０    構文解析部
１３１    不揮発性記憶記述検出部
１４０    制約条件取得部
１５０    素子ライブラリ
１６０    生成部
１６１    スケジューリング部
１６２    素子割付部
１７０    出力部
【図１】
2006190211.tif 000003
【図２】
2006190211.tif 000004
【図３】
2006190211.tif 000005
【図４】
2006190211.tif 000006
【図５】
2006190211.tif 000007
【図６】
2006190211.tif 000008
【図７】
2006190211.tif 000009
【図８】
2006190211.tif 000010
【図９】
2006190211.tif 000011