(57)【要約】【課題】タイミング緩和が可能な回路を検出し、FFを削除して、ゲートレベル回路を生成する。【解決手段】論理回路の動作を記述したハードウェア記述ファイルに基づき論理合成を行う情報処理装置であって、論理回路から、記憶素子間に記憶素子を含む回路構成を抽出する抽出手段と、抽出された回路構成のそれぞれについて、初段の記憶素子の出力信号から最終段の記憶素子への入力までのいずれかの信号が、他の回路構成と接続されているか否かを判定する判定手段と、他の回路構成と接続されていないと判定された回路構成につき、当該回路構成における初段と最終段の記憶素子を除く他の少なくとも１つの記憶素子を削除してゲートレベル回路を生成する生成手段とを備える。【選択図】図１
2015172915.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の動作を記述したハードウェア記述ファイルに基づき論理合成を行う情報処理装置であって、
前記論理回路から、記憶素子間に記憶素子を含む回路構成を抽出する抽出手段と、
抽出された前記回路構成のそれぞれについて、初段の記憶素子の出力信号から最終段の記憶素子への入力までのいずれかの信号が、他の回路構成と接続されているか否かを判定する判定手段と、
前記他の回路構成と接続されていないと判定された前記回路構成につき、当該回路構成における前記初段と前記最終段の記憶素子を除く他の少なくとも１つの記憶素子を削除してゲートレベル回路を生成する生成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成手段は、前記初段と前記最終段の記憶素子を除く他の記憶素子を削除した場合の信号の遅延が、前記論理回路が動作するためのタイミングとの関連で許容できる範囲であるか否かに基づき、削除すべき記憶素子を判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、記憶素子間の周期を規定するサイクルよりも、前記記憶素子を削除した場合の遅延が大きいかどうかに基づいて、該遅延が前記論理回路が動作するためのタイミングとの関連で許容できる範囲であるか否かを判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記生成手段は、削除された記憶素子を遅延素子と置き換えて前記ゲートレベル回路を生成することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記生成手段は、前記記憶素子の削除により前記回路構成の動作タイミングが早くなり、前記論理回路の動作に影響を与える場合に前記削除された記憶素子を前記遅延素子と置き換えることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記生成手段は、前記回路構成における前記初段と前記最終段の記憶素子を除く他の記憶素子のうち、削除して前記遅延素子に置き換えた場合に消費電力が減少する記憶素子を削除することを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記生成手段は、前記記憶素子を削除する場合に、該記憶素子に入力されるパスに対してマルチサイクルパスを設定して前記ゲートレベル回路を生成することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記生成手段は、前記記憶素子を削除する場合に、該記憶素子の後段の記憶素子にクロックゲーティング回路を追加して前記ゲートレベル回路を生成することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記判定手段は、前記初段の記憶素子の出力信号から最終段の記憶素子への入力までの信号につき、前記回路構成に供給されるクロック信号、リセット信号及び制御信号を除いた信号について前記判定を行うことを特徴とする請求項１から８のいずれか1項に記載の情報処理装置。
【請求項１０】
論理回路の動作を記述したハードウェア記述ファイルに基づき論理合成を行う情報処理装置の制御方法であって、
前記論理回路から、記憶素子間に記憶素子を含む回路構成を抽出する抽出工程と、
抽出された前記回路構成のそれぞれについて、初段の記憶素子の出力信号から最終段の記憶素子への入力までのいずれかの信号が、他の回路構成と接続されているか否かを判定する判定工程と、
前記他の回路構成と接続されていないと判定された前記回路構成につき、当該回路構成における前記初段と前記最終段の記憶素子を除く他の少なくとも１つの記憶素子を削除してゲートレベル回路を生成する生成工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを請求項１乃至９のいずれか１項に記載の情報処理装置の各手段として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、LSIなどの半導体設計における論理合成を行う情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
Large Scale Integration（以下、LSI）の設計手順として、一般的に、以下のフローが知られている。最初に、要求仕様にあった論理回路をVerilog-HDLなどの専用のハードウェア記述言語で記述し、Register Transfer Level（以下、RTL）の論理回路を作成する。RTL論理回路は、フリップフロップ（以下、FF）と呼ばれる記憶素子と記憶素子を持たない組み合わせ回路で構成される。
【０００３】
RTL論理回路は、FFを基準とした同期設計で組まれることが多く、FF間は1クロックサイクルでタイミングが間に合うことが基本となる。RTL論理回路作成の際には、タイミングが間に合うかどうかを、適応する半導体プロセス、動作周波数などを加味して、検討し、必要に応じてタイミングを間に合わすためにFFを冗長に組み込んで作成する。次に、作成したRTL論理回路が要求仕様にあっていることを確認後、製造する半導体プロセスを有するベンダーから提供される半導体プロセスの物理特性を反映したセルライブラリ、及び、生成されるゲートレベル回路の動作周波数などを設定したタイミング制約ファイルを使用して、RTL論理回路を、セルライブラリに含まれているスタンダードセルから構成されるゲートレベル回路に変換する論理合成を行い、ゲートレベル回路を生成する。
【０００４】
ここで、論理合成の結果を見て、この後行われるタイミング検証で問題になるかどうかを判断し、タイミングが間に合わないと判断した場合は、RTL論理回路作成フェーズまで戻り、FFを冗長に組み込んで、再度、論理合成を行う。次に、生成されたゲートレベル回路において、回路内の信号が決められた時間内で動作するかを検証するタイミング検証を行う。最後に、ゲートレベル回路の各素子を物理的に配置配線し、配置配線が終了すると製造工程に移行する。
【０００５】
近年の半導体プロセスの微細化に伴い、LSIの回路規模は肥大化し、実装されるFFの数も膨大な数となっている。肥大化する回路規模や、それに伴う配置配線作業の増大に対して、FF間のタイミング調整を必要としないフォルスパス設定を自動で抽出して、回路規模削減や配置配線作業の軽減を行う技術が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２２６０６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術は、フォルスパスを設定することで回路規模削減を行うことができるが、FF間の組み合わせ回路に関して削減するものであって、FFそのものを削除することができないといった問題があった。FFが削除されないため、FFへ供給するクロックラインやFFへの配線、物理的なFFの領域は必要となり、回路規模削減や配置配線作業の軽減は限られていた。
【０００８】
本発明は上記問題点に鑑み、タイミング緩和が可能な回路を検出し、FFを削除して、ゲートレベル回路を生成することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するための本発明は、論理回路の動作を記述したハードウェア記述ファイルに基づき論理合成を行う情報処理装置であって、
前記論理回路から、記憶素子間に記憶素子を含む回路構成を抽出する抽出手段と、
抽出された前記回路構成のそれぞれについて、初段の記憶素子の出力信号から最終段の記憶素子への入力までのいずれかの信号が、他の回路構成と接続されているか否かを判定する判定手段と、
前記他の回路構成と接続されていないと判定された前記回路構成につき、当該回路構成における前記初段と前記最終段の記憶素子を除く他の少なくとも１つの記憶素子を削除してゲートレベル回路を生成する生成手段とを備える。
【発明の効果】
【００１０】
本発明によれば、冗長なFFを削除することができ、回路規模が縮小し、配置配線作業の軽減、消費電力の削減が可能となる。
【図面の簡単な説明】
【００１１】
【図１】発明の実施形態に対応する情報処理装置の構成例を示すブロック図。
【図２】発明の実施形態に対応する論理合成部の構成例を示すブロック図。
【図３】発明の実施形態に対応する論理回路構成を説明するための回路図。
【図４】発明の実施形態に対応する論理合成処理の一例を示すフローチャート。
【図５】発明の実施形態２に係る論理回路構成の一例を示す回路図。
【図６】発明の実施形態２に対応する論理合成処理の一例を占めすフローチャート。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら本発明の好適な実施の形態を説明する。
【００１３】
［実施形態１］
図１に本発明の実施形態に対応する情報処理装置のハードウェア構成図を示す。当該情報処理装置は例えばパーソナルコンピュータ（ＰＣ）として実現することができるが、計算機性能を有する機器であればよく、ＰＣに限定されるものではない。
図１において、ＣＰＵ１０１は、ＨＤ（ハードディスク）１０３に格納されているＯＳ、アプリケーションプログラム等を実行し、ＲＡＭ１０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＨＤ１０３は、アプリケーションプログラム、ドライバプログラム、ＯＳ、制御プログラム、本実施形態に対応する論理合成処理を実行するための処理プログラム等を格納している。
【００１４】
ディスプレイ１０４は、操作部１０９から入力したコマンドや、外部から取得した情報等を表示するための表示部である。インターフェイス（以下、Ｉ／Ｆという）１０５は、外部装置やネットワークと接続するための通信インターフェイスである。ＲＯＭ１０６には、基本Ｉ／Ｏプログラム等のプログラムを記憶する。
【００１５】
外部記憶ドライブ１０７は、メディア１０８に記憶されたプログラム等を本コンピュータシステムにロードすることができる。記録媒体としてのメディア１０８は、所定のプログラムおよび関連データを格納する。操作部１０９は、本装置の操作者が、指示入力を行うためのユーザインタフェースであり、キーボードやマウスで構成される。システムバス１１０は、装置内のデータの流れを司る。
【００１６】
次に図２を参照して、本実施形態に対応する論理合成処理を実行する論理合成部の機能ブロック図を示す。例えばＨＤ１０３に格納されている論理合成処理用プログラムをＣＰＵ１０１が実行する場合、当該ＣＰＵ１０１が図２に記載の各機能ブロックとして機能する。
【００１７】
図２において、論理合成部２００は生成部２０１、回路抽出部２０２、判定部２０３を含む。生成部２０１は、回路のタイミング情報を記載した論理合成制約ファイルと回路、配線の遅延情報が書かれた物理情報を用いて論理合成して、回路を構成する基本単位であるベーシックセルを使用した回路記述ファイルであるゲートレベル回路を生成する。また、ゲートレベル回路の修正を行う。回路抽出部２０２は、生成されたゲートレベル回路に基づき論理回路から所定の回路構成を抽出する。判定部２０３は、回路抽出部２０２が抽出した回路構成について、削除すべき記憶素子を特定するための判定を行う。
【００１８】
以下、具体的な論理合成処理について説明するが、それに先だって図３を参照して本実施形態における論理合成処理の対象となる論理回路の構成を説明する。図３（ａ）に示す回路３１５は、本実施形態に対応する処理を適応する前の回路全体を示す。回路３１５は、記憶素子であるフリップ・フロップ（FF）３００、３０３、３０４、３０８、３０９、３１０、３１２、３１４を含む。また、組み合わせ回路３０１、３０２、３０５、３０６、３０７、３１１、３１３を含む。また、図３（ｂ）の回路３１７は本実施形態に対応する処理を適応した後の回路全体を示す。回路３１７は、FF３００、３０９、３１０、３１２、３１４と、組み合わせ回路３０１、３０２、３０５、３０６、３０７、３１１、３１３と共に、バッファ３１６を含む。FFは、情報を保持することができるため記憶素子として機能することが可能であり、情報を保持して後段の回路に渡す際に使用される。組み合わせ回路は、加算、減算、乗算、除算、セレクタなどの単なる組み合わせ論理で構成され、各情報の演算や選択を行う際に使用される。バッファは、タイミング調整や信号の駆動能力調整を行う際に使用される。
【００１９】
次に図４を参照して、本実施形態に対応する論理合成処理を説明する。図４は本実施形態に対応する論理合成処理の一例を説明するフローチャートである。図４に対応する処理は、例えばＨＤ１０３に格納されている論理合成処理用プログラムをＣＰＵ１０１が実行することにより実現される。
まず、Ｓ４００において、生成部２０１が論理回路の動作が記述されたハードウェア記述ファイルを読み込みＳ４０１に進む。Ｓ４０１において、生成部２０１は回路のタイミング情報を記載した論理合成制約ファイルと回路、配線の遅延情報が書かれた物理情報を用いて論理合成して、回路を構成する基本単位であるベーシックセルを使用した回路記述ファイルであるゲートレベル回路を生成し、Ｓ４０２に進む。Ｓ４０２において、回路抽出部２０２は、記憶素子間に別の記憶素子が入る以下の回路構成を抽出し、Ｓ４０３に進む。
・FF３００とFF３０８、FF３００とFF３０９、FF３００とFF３１０、FF３００とFF３１２、FF３００とFF３１４
・FF３０３とFF３１２、FF３０３とFF３１４
・FF３０４とFF３１２、FF３０４とFF３１４
・FF３０８とFF３１４
・FF３０９とFF３１４
・FF３１０とFF３１４
Ｓ４０３において、判定部２０３は、Ｓ４０２で回路抽出部２０２が抽出した各回路構成について、当該回路構成の初段のFFの出力信号から最終段のFFへの入力信号までの全信号が、他の回路と接続（信号が共用）されているかどうかを判定する。上記回路構成のそれぞれについて判定すると、具体的に以下のようになる。
・FF３００とFF３０８の回路構成と、FF３００とFF３０９の回路構成とでは、FF３０３からの出力信号を共用している。
・FF３００とFF３０８又はFF３０９の回路構成と、FF３００とFF３１０の回路構成とでは、FF３００からの出力信号を共用している。
・FF３０３とFF３１２の回路構成と、FF３０３とFF３１２の回路構成とでは、FF３１２への入力信号が共用されている。
・FF３０３とFF３１４の回路構成と、FF３０３とFF３１４の回路構成とでは、FF３１４への入力信号が共用されている。
・FF３０３とFF３１２の回路構成と、FF３０４とFF３１２の回路構成とでは、FF３１２への入力信号が共用されている。
・FF３０３とFF３１４の回路構成と、FF３０４とFF３１４の回路構成とでは、FF３１４への入力信号が共用されている。
・FF３０８とFF３１４の回路構成と、FF３０９とFF３１４の回路構成とでは、FF３１４への入力信号が共用されている。
・FF３０８とFF３１４の回路構成と、FF３１０とFF３１４の回路構成とでは、FF３１４への入力信号が共用されている。
・FF３００とFF３１２の回路構成は、FF３００とFF３１２の間の信号は外部に出力されていない。
・FF３００とFF３１４の回路構成では、FF３１４に入力される組み合わせ回路３１３からの出力信号が分岐している。
【００２０】
以上に基づき、以下の回路構成を除外してＳ４０４に進む。
・FF３００とFF３０８、FF３００とFF３０９、FF３００とFF３１０、FF３００とFF３１４
・FF３０３とFF３１２、FF３０３とFF３１４
・FF３０４とFF３１２、FF３０４とFF３１４
・FF３０８とFF３１４
・FF３０９とFF３１４
・FF３１０とFF３１４
この結果、FF３００とFF３１２の回路構成のみが除外されずに残る。Ｓ４０４において、生成部２０１は、回路構成に含まれるＦＦのうち、削除すべきＦＦを判定する。上記の例ではFF３００とFF３１２の間のFFは他の回路に接続されていないことから、タイミング調整用FFであって、機能を実現するためのFFではないと判定できる。よって、削除対象に選ばれるFFの候補は３０４、３０４、３０８、３０９、３１０である。
【００２１】
生成部２０１は、候補となるＦＦを削除した場合の信号遅延が、論理回路が動作するためのタイミングとの関連で許容できる範囲であるかを判定する。具体的にFF３００とFF３１２間のFFに対して、FF間の周期を規定するクロックサイクルよりも、組み合わせ回路による遅延情報と物理情報による配線遅延が大きいかどうかを比較する。仮にクロックサイクルよりも大きな遅延が生ずる場合には論理回路の動作タイミングにずれが生じてしまうため、そのような遅延は許容できないこととなる。よって、組み合わせ回路による遅延情報と物理情報による配線遅延の合計値が規定されたクロックサイクルより小さい場合は削除可能なFFとして抽出するが、クロックサイクル以上の場合は当該FFは削除しない。その後Ｓ４０５に進む。本実施形態では、FF３０３、FF３０４、FF３０８、FF３０９が抽出できる。一方、FF３１０は、削除してしまうとFF３００から組み合わせ回路３０２、３０７、３１１を通ってFF３１２にいくパスが規定のクロックサイクルに間に合わないため抽出できなかったとする。
【００２２】
Ｓ４０５において生成部２０１は、削除したFFの代わりに遅延素子を挿入するか否かの判定を行う。具体的に、FFを削除したことによって到達するタイミングが早くなってしまいFF削除前の論理と変わってしまい、論理回路の動作に影響を与える場合は、バッファ挿入の判定を行う。その後Ｓ４０６に進む。本実施形態では、FF３０３、FF３０４、FF３０８、FF３０９に対してバッファ挿入を行うとの判定が成された場合を想定している。
【００２３】
Ｓ４０６において、生成部２０１は、ＦＦを削除してバッファと置き換えた場合の消費電力について判定する。本実施形態ではFFを使用した場合よりもバッファに置き換えた場合の方が消費電力が小さい場合にFFを削除してバッファに置き換える。具体的に、４０５で挿入したバッファの消費電力増加分と削除したFFの消費電力減少分とを比較し、バッファによる消費電力増加分の方が大きい場合には、FFの削除を取りやめてＳ４０７に進む。本実施形態では、FF３０９の削除を取りやめたとする。
【００２４】
Ｓ４０７において、生成部２０１は、Ｓ４０１で生成されたゲートレベル回路にＳ４０２からＳ４０６までの処理を施した回路３１７を最終のゲートレベル回路としてゲートレベル回路を完成させ、本処理を終了する。
【００２５】
本実施形態のＳ４０６における挿入したバッファの消費電力増加分と削除したFFの消費電力減少分との比較には、回路構造から静的に比較してもよいし、Switching Activity Interchange formatファイルやValue Change Dumpファイルのようなデータのスイッチングがわかるパターンファイルを用いて比較してもよい。
【００２６】
以上、説明したように、RTLから存在する回路内のタイミング調整用FFにおいて、削減可能なFFを削除することで、回路規模が小さく、消費電力の少ないゲートレベル回路を生成することが可能となる。
【００２７】
［変形例］
上述の実施形態１では、抽出された各回路構成につき、初段のFFの出力信号から最終段のFFへの入力までの全信号が他の回路構成と接続されているかどうかを判定した。これに対し、FF間に対して、クロック信号、リセット信号、モード信号などの共通の制御信号を除いてもよい。なお、クロック信号は各FFに供給され、リセット信号は各FFと各組み合わせ回路に供給され、制御信号は各組み合わせ回路に供給される。
【００２８】
これにより、削除可能なFFを削除する際に、回路内で共通に使用されているクロック信号、リセット信号、制御信号を除外して判定するので、正確に削減可能なFFを抽出可能となる。
【００２９】
［実施形態２］
上記実施形態では削除可能とした記憶素子（FF）を遅延素子（バッファ）に置き換えていた。本実施形態では、その代わりに、或いは、それに追加して当該削除される記憶素子の入力に対してマルチサイクルパスを設定するか、或いはクロックゲーティング回路を利用する。以下の本実施形態では、記憶素子を削除可能と判定したFF間に対してマルチサイクルパスを設定する場合、削除可能と判定した記憶素子（FF）を、クロックゲーティング回路に変更する場合をそれぞれ説明する。
【００３０】
図５は本発明の一実施形態を説明する回路構成を示す図である。本実施形態に対応する処理を適応する前の回路は、図３（ａ）に示したものと同様である。回路５１７は本実施形態に対応する処理を適応した後の回路全体を示し、FF３００、３０８、３０９、３１０、３１２、３１４を含む。また、組み合わせ回路３０１、３０２、３０５、３０６、３０７、３１１、３１３と、クロックゲーティング用のＡＮＤゲート５０１を含む。
【００３１】
次に図６を参照して、本実施形態に対応する論理合成処理を説明する。図６は本実施形態に対応する論理合成処理の一例を説明するフローチャートである。図６に対応する処理は、例えばＨＤ１０３に格納されている論理合成処理用プログラムをＣＰＵ１０１が実行することにより実現される。図６はＳ６０１を除いて基本的に図４の動作と同様であり、同一の参照番号を付している個所については図４と同様の処理が行われることとして、繰り返しとなる説明は省略する。
【００３２】
Ｓ６０１において、生成部２０１は削除されるFFの代わりに設定するマルチサイクル及びクロックゲーティングについて判定する。具体的に、本実施形態ではＳ４０４における削除素子の判定において削除可能なFFとしてFF５０３、FF５０４が抽出され、これらについてマルチサイクル設定、クロックゲーティング回路の判定を行う。マルチサイクル設定かクロックゲーティング回路の挿入のどちらを選択するかは、マルチサイクル設定によるタイミング緩和による消費電力削減効果と、クロックゲーティング回路の挿入による消費電力削減効果で大きい方を選択する。
【００３３】
また、クロックゲーティング回路に用いるイネーブル信号は、FF５００のデータをラッチするタイミング信号を必要なFF段数で叩いた信号を使用することができる。本実施形態では、FF５０３を削除するために、FF５００からFF５０８とFF５００からFF５０９のパスにマルチサイクルパス設定を行い、FF５０４を削除するためにFF５１０にクロックゲーティング回路を挿入したとする。その後、Ｓ４０７に進む。
【００３４】
Ｓ４０７では、Ｓ４０１で生成されたゲートレベル回路にＳ４０２からＳ４０４及びＳ６０１の処理を施した回路５１７を最終のゲートレベル回路として完成させ、本処理を終了する。
【００３５】
以上、説明したように、削除可能と判定したFFに対してマルチサイクル設定、クロックゲーティング回路挿入を行うことで、削除した場合に近い効果を得られることが可能となる。削除可能と判定したFFを削除した場合、実際の物理レイアウト工程ではタイミング収束できず、FFが必要になる場合も考えられる。その場合、論理回路にFFを追加し、回路の再検証が必要となり効率が悪い。本実施形態は、そのような場合に有効となる。
【００３６】
なお、本発明は、RTLを読み込んでゲートレベル回路を出力する場合の論理合成に関して説明したが、RTLを読み込んでRTLを出力する場合、ゲートレベル回路を読み込んでゲートレベル回路を出力する場合も適応するべきものである。なお、本発明は、本発明の技術思想の範囲内において、上記実施形態に限定されるものではなく、対象となる回路形態により適時変更されて適応するべきものである。
【００３７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015172915.tif 000003
【図２】
2015172915.tif 000004
【図３】
2015172915.tif 000005
【図４】
2015172915.tif 000006
【図５】
2015172915.tif 000007
【図６】
2015172915.tif 000008