(57)【要約】【課題】静的な設計制約を用いた論理最適化手法よりも論理を最適化することができる半導体集積回路設計支援装置を提供する。【解決手段】半導体集積回路設計支援装置は、論理回路の回路情報から論理を抽出する論理抽出部４２と、前記論理回路を設計するときの設計制約情報からユースケース情報を抽出するユースケース抽出部４４と、前記抽出された論理と前記抽出されたユースケース情報とに基づいて、ユースケース毎の動作中に固定される固定信号情報を抽出するユースケース毎の動作中固定信号抽出部４５と、前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて前記抽出された論理を最適化する論理最適化部４６とを備える。【選択図】図５
2017228240.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の回路情報から論理を抽出する第１の抽出手段と、
前記論理回路を設計するときの設計制約情報からユースケース情報を抽出する第２の抽出手段と、
前記抽出された論理と前記抽出されたユースケース情報とに基づいて、ユースケース毎の動作中に固定される固定信号情報を抽出する第３の抽出手段と、
前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて前記抽出された論理を最適化する最適化手段とを備えたことを特徴とする半導体集積回路設計支援装置。
【請求項２】
前記最適化手段は、前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて、前記論理回路の一部分の削除と共有化の少なくとも一方を行うことで前記抽出された論理を最適化することを特徴とする請求項１記載の半導体集積回路設計支援装置。
【請求項３】
前記最適化手段はさらに、前記設計制約情報に基づいて前記論理の最適化を行うか否かを判断し、論理の最適化を行うと判断したときに前記論理に対して最適化を行う一方、論理の最適化を行わないと判断したときに前記論理に対して最適化を行わないことを特徴とする請求項１又は２記載の半導体集積回路設計支援装置。
【請求項４】
前記最適化手段はさらに、前記最適化された論理に対して、セルライブラリを参照してライブラリマッピングを行ってネットリストを含む回路情報を生成して出力することを特徴とする請求項１〜３のうちのいずれか１つに記載の半導体集積回路設計支援装置。
【請求項５】
論理回路の論理を最適化する半導体集積回路設計支援装置により実行される半導体集積回路設計支援方法であって、
前記半導体集積回路設計支援方法は、
論理回路の回路情報から論理を抽出するステップと、
前記論理回路を設計するときの設計制約情報からユースケース情報を抽出するステップと、
前記抽出された論理と前記抽出されたユースケース情報とに基づいて、ユースケース毎の動作中に固定される固定信号情報を抽出するステップと、
前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて前記抽出された論理を最適化するステップとを含むことを特徴とする半導体集積回路設計支援方法。
【請求項６】
前記論理を最適化するステップは、前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて、前記論理回路の一部分の削除と共有化の少なくとも一方を行うことで前記抽出された論理を最適化することを特徴とする請求項５記載の半導体集積回路設計支援方法。
【請求項７】
前記論理を最適化するステップはさらに、前記設計制約情報に基づいて前記論理に基づいて前記論理の最適化を行うか否かを判断し、論理の最適化を行うと判断したときに前記論理に対して最適化を行う一方、論理の最適化を行わないと判断したときに前記論理に対して最適化を行わないことを特徴とする請求項５又は６記載の半導体集積回路設計支援方法。
【請求項８】
前記論理を最適化するステップはさらに、前記最適化された論理に対して、セルライブラリを参照してライブラリマッピングを行ってネットリストを含む回路情報を生成して出力することを特徴とする請求項５〜７のうちのいずれか１つに記載の半導体集積回路設計支援方法。
【請求項９】
請求項５〜８のうちのいずれか１つに記載の半導体集積回路設計支援方法の各ステップを含み、前記各ステップをコンピュータにより実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路設計支援装置及び方法、並びにプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の設計は、半導体集積回路設計支援装置を用いて行われるようになって
きており、半導体集積回路設計支援装置は、一般的に設計ツールであるＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）ツールを備えたコンピュータが用いられている。半導体集積回路設計支援装置は、ＣＡＤツールによりハードウェア記述言語（ＨＤＬ：Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述されたファイルを読み込み、論理合成を行う。そして、設計支援対象となる回路の接続状態を示すデータであるネットリスト（ＮＥＴＬＩＳＴ）を生成する。
【０００３】
近年、半導体集積回路の大規模化に伴い、半導体集積回路の回路規模を削減する設計手法が注目されている。半導体集積回路の回路規模を削減する設計手法の１つとして、論理合成時に設計制約として信号の固定値情報を与え、論理を最適化するという設計手法が考えられ既に知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、今までの回路規模の削減手法は、回路の動作中、停止中を問わず、信号の値を固定するような静的な設計制約から論理を最適化することしかできない。回路の動作中は信号の値は固定であるが、回路の停止中には、新たな値を設定することができるという回路のユースケースを考慮した論理最適化はできないという問題点があった。
【０００５】
本発明の目的は以上の問題点を解決し、静的な設計制約を用いた論理最適化手法よりも論理を最適化することができる半導体集積回路設計支援装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様にかかる半導体集積回路設計支援装置は、
論理回路の回路情報から論理を抽出する第１の抽出手段と、
前記論理回路を設計するときの設計制約情報からユースケース情報を抽出する第２の抽出手段と、
前記抽出された論理と前記抽出されたユースケース情報とに基づいて、ユースケース毎の動作中に固定される固定信号情報を抽出する第３の抽出手段と、
前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて前記抽出された論理を最適化する最適化手段とを備えたことを特徴とする。
【発明の効果】
【０００７】
本発明に係る半導体集積回路設計支援装置によれば、回路のユースケース情報を考慮した、回路の動作中のみ固定される信号情報を用いて論理を最適化することで、静的な設計制約を用いた論理最適化手法以上の論理を最適化することができる。
【図面の簡単な説明】
【０００８】
【図１】比較例にかかる半導体集積回路設計支援装置により実行される一般的な論理合成処理機能を示すブロック図である。
【図２】図１の回路情報３１（ＨＤＬ）の一例を示す図である。
【図３Ａ】図２の回路情報３１の論理回路を示す回路図である。
【図３Ｂ】図３Ａの回路情報３１に対して設計制約を与えて最適化したときの論理回路を示す回路図である。
【図４】本発明の一実施形態にかかる半導体集積回路設計支援装置１のハードウエア構成例を示すブロック図である。
【図５】図４の半導体集積回路設計支援装置１により実行される半導体集積回路設計支援処理の機能処理部を示すブロック図である。
【図６】実施例１にかかる図５の設計制約情報５２の一例を示す図である。
【図７】図７の設計制約情報５２から抽出されたユースケース情報によって論理最適化を行った後の論理回路を示す回路図である。
【図８】実施例２にかかる図５の回路情報５１の一例であるステートマシンの論理回路の回路情報を示す図である。
【図９】図８のステートマシンの論理回路を示す回路図である。
【図１０】図８のステートマシンの論理回路の状態遷移図である。
【図１１】図１０の状態遷移を設計制約情報５２として与えたときの一例を示す図である。
【図１２】実施例３にかかるステートマシンの論理回路の回路情報５１の一例を示す図である。
【図１３】図１２のステートマシンの論理回路を最適化なしで図示した回路図である。
【図１４】図１２のステートマシンの論理回路の状態遷移図である。
【図１５】図１２のステートマシンの論理回路に対して図１４の状態遷移で最適化したときの回路図である。
【図１６Ａ】実施例４にかかる図１２のステートマシンの論理回路に対して追加の設計制約を与えた場合を示す状態遷移図である。
【図１６Ｂ】図１６Ａの追加の設計制約情報５２を示す図である。
【図１７】図１２のステートマシンの論理回路に対して図１６Ａ及び図１６Ｂの追加の設計制約情報５２を与えて最適化したときの論理回路の一例を示す回路図である。
【発明を実施するための形態】
【０００９】
以下、比較例及び本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００１０】
比較例．
図１は比較例にかかる半導体集積回路設計支援装置により実行される一般的な論理合成処理機能を示すブロック図である。図１において、一般的な半導体集積回路の論理合成処理は、論理抽出部２１、論理最適化部２２、ライブラリマッピング部２３の３つの処理工程で構成される。論理抽出部２１は、回路情報（ＨＤＬ）３１から回路の論理を抽出して論理最適化部２２に出力する。論理最適化部２２は、抽出された論理に対して、設計制約情報２４（例えば、周波数情報、タイミング制約、ターゲット規模情報など）に基づいて論理最適化を行う。ライブラリマッピング部２３は、論理最適化された論理をセルライブラリ２５にマッピングし、ゲートレベルの回路情報３２（ＮＥＴＬＩＳＴ）を出力する。なお、得られた回路情報３２が論理最適化部２２で与えられた設計制約情報２４を満たせない場合は、前段の回路設計処理に戻り設計制約情報２４を満たすことができるよう回路情報３１（ＨＤＬ）が変更される。
【００１１】
図２は図１の回路情報３１（ＨＤＬ）の一例を示す図であり、具体的にはＶｅｒｉｌｏｇ−ＨＤＬで記述された回路情報（ＨＤＬ）である。
【００１２】
図２の回路情報３１の１行目において、モジュール名はＤＵＴ（テスト対象デバイス）であることが宣言されている。２〜６行目のステートメントでは、
（１）クロックＣＬＫと、入力信号ＩＮ１と、入力信号ＩＮ２と、イネーブル信号ＥＮとのための４つの入力ポートを有すること、
（２）出力信号ＯＵＴ１及び出力信号ＯＵＴ２のための２つの出力ポート、レジスタＲＥＧ１及びレジスタＲＥＧ２という２つのレジスタを有すること、
が記述されている。これらの入出力ポート及びデータタイプは全て１ビットである。
【００１３】
図２の８〜１１行目の手続き代入文１０１では、ＣＬＫの立上りエッジで、イネーブル信号ＥＮがＨｉ（ハイレベル）のとき、入力信号ＩＮ１がレジスタＲＥＧ１にノンブロッキング代入されるという論理が記述されている。次いで、図２の１３〜１６行目の手続き代入文１０２では、クロックＣＬＫの立上りエッジで、イネーブル信号ＥＮがＬｏ（ローレベル）のとき、入力信号ＩＮ２がレジスタＲＥＧ２にノンブロッキング代入されるという論理が記述されている。
【００１４】
図２の１８行目の継続代入文１０３により、
（１）イネーブル信号ＥＮがＨｉ（ハイレベル）のとき出力信号ＯＵＴにレジスタＲＥＧ１のデータが代入されること、
（２）イネーブル信号ＥＮがＬｏ（ローレベル）のとき出力信号ＯＵＴにレジスタＲＥＧ２のデータが代入されること、
が記述されている。
【００１５】
つまり、ＤＵＴモジュールは、以下の動作を行っている。
（１）イネーブル信号ＥＮがＨｉ（ハイレベル）のとき、入力信号ＩＮ１をクロックＣＬＫの立上りでレジスタＲＥＧ１にラッチして出力信号ＯＵＴへ出力する。
（２）入力信号ＥＮがＬｏ（ローレベル）のとき、入力信号ＩＮ２をクロックＣＬＫの立上りでレジスタＲＥＧ２にラッチして出力信号ＯＵＴへ出力する。
（３）レジスタＲＥＧ１，ＲＥＧ２はデータをラッチしないときは、現データを保持する。
【００１６】
図３Ａは図２の回路情報３１の論理回路を示す回路図である。既存の論理最適化手法では、イネーブル信号ＥＮがＨｉ（ハイレベル）／Ｌｏ（ローレベル）で変化する場合、これ以上の論理最適化はできない。図３Ａにおいて、当該論理回路は、３つのマルチプレクサＭＵＸ１，ＭＵＸ２，ＭＵＸ３と、１つのインバータＩＮＶ１と、２つのレジスタＲＥＧ１，ＲＥＧ２とを備えて構成される。
【００１７】
図３Ｂは図３Ａの回路情報３１に対して設計制約を与えて最適化したときの論理回路を示す回路図である。図３Ａの回路情報３１に対して設計制約情報を与えると、以下に示すように論理回路最適化が可能となる。ここでは、図３Ａの回路情報３１に設計制約情報として、ＥＮ＝Ｈｉ（イネーブル信号ＥＮが常にＨｉ（ハイレベル）である）という情報が与えられた場合について説明する。
【００１８】
イネーブル信号ＥＮが常にＨｉ（ハイレベル）であるため、イネーブル信号ＥＮ＝Ｌｏ（ローレベル）の時に動作する回路は出力信号ＯＵＴに影響を与えることがない。そのため、イネーブル信号ＥＮ＝Ｌｏ（ローレベル）の時に動作する回路を全て削除しても回路の出力結果に影響しない。つまりイネーブル信号ＥＮが常にＨｉ（ハイレベル）であるという制約があることで、テスト対象デバイス（ＤＵＴ）はクロックＣＬＫの立上りエッジで入力信号ＩＮ１をレジスタＲＥＧ１がラッチして出力信号ＯＵＴを出力ポートに出力するという動作をする。
【００１９】
イネーブル信号ＥＮ＝Ｈｉ（ハイレベル）という設計制約が与えられると、図３Ｂに示すようにＥＮ＝Ｈｉの時に動作する回路のみを残し、ＥＮ＝Ｌｏ（ローレベル）の時に動作する回路を削除しても、図２で示した回路情報３１と等価な回路となる。また、同様に、設計制約情報３２として、イネーブル信号ＥＮ＝Ｌｏ（イネーブル信号ＥＮが常にＬｏ（ローレベル）である）という情報が与えられた場合、ＤＵＴモジュールはクロックＣＬＫの立上りエッジで入力信号ＩＮ２をレジスタＲＥＧ２がラッチする。そして、出力信号ＯＵＴとして出力ポートに出力するという動作をし、イネーブル信号ＥＮ＝Ｈｉ（ハイレベル）の時に動作する回路を削除することが可能である。このように、常に固定される信号情報（つまり、静的な設計制約）を用いて、出力に影響しない論理を削除した論理回路を作ることが既存の論理最適化手法の１つである。
【００２０】
実施形態．
図４は本発明の一実施形態にかかる半導体集積回路設計支援装置１のハードウエア構成例を示すブロック図である。図４において、半導体集積回路設計支援装置１は、通常のハードウェア構成及びソフトウェア構成のコンピュータに、本発明の半導体集積回路設計支援方法を実行するプログラムを搭載することで構築されている。なお、本実施形態にかかる半導体集積回路設計支援装置１は１台のコンピュータで構築されている。本発明はこれに限らず、複数台のコンピュータや大容量記憶装置等がＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット等のネットワークで接続されることで構築されていてもよい。
【００２１】
半導体集積回路設計支援装置１は、ＣＰＵ２、ＲＯＭ３、ＲＡＭ４、不揮発性メモリ５、入力インターフェース（入力Ｉ／Ｆ）６、出力インターフェース（出力Ｉ／Ｆ）７及び外部インターフェース（外部Ｉ／Ｆ）８等を備えて構成される。ここで、各回路２〜８はバス９により接続されている。
【００２２】
入力Ｉ／Ｆ６には、キーボード、マウス、スタイラスペン、タッチパネル等の入力デバイス１１が接続され、入力Ｉ／Ｆ６は、入力デバイス１１から入力される各種命令等をＣＰＵ２へ出力する。出力Ｉ／Ｆ７には、ディスプレイ、ランプ、スピーカ、プリンタ等の出力デバイス１２が接続され、出力Ｉ／Ｆ７はＣＰＵ２の制御下で出力デバイス１２に表示データ、点滅データ、音声データ、記録データ等の出力データを出力する。外部Ｉ／Ｆ８は、ネットワーク、外部記憶装置等が接続される。外部Ｉ／Ｆ８はＣＰＵ２の制御下でＴＣＰ／ＩＰ又はＳＭＴＰ／ＰＯＰ等のプロトコルの制御を行って通信を行う。また、外部Ｉ／Ｆ８はＣＰＵ２の制御下で外部記憶装置へのデータの書き込み及び外部記憶装置からのデータの読み出しを行う。
【００２３】
ＲＯＭ３は、コンピュータのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、半導体集積回路設計支援装置１としての基本プログラム、本実施形態にかかる半導体集積回路設計支援方法（処理）を実行する処理プログラム及びシステムデータ等を記憶している。ＲＯＭ３は、半導体集積回路設計支援方法を実行するプログラムを補完するプログラムとして、配置配線ツールプログラム等を記憶している。ＲＡＭ４は、ＣＰＵ２のワークメモリとして利用され、半導体集積回路設計支援方法の実行に伴う各種データ等を記憶する。
【００２４】
ＣＰＵ２は、ＲＯＭ３内のプログラムに基づいて、ＲＡＭ４をワークメモリとして利用して、半導体集積回路設計支援装置１の各部を制御して、半導体集積回路設計支援装置１としての基本処理を実行する。また、ＣＰＵ２は、ＲＯＭ３内の半導体集積回路設計支援方法（処理）のプログラムに基づいて、本実施形態にかかる半導体集積回路設計支援方法（処理）を実行する。
【００２５】
不揮発性メモリ５はＮＶＲＡＭ（Ｎｏｎｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ハードディスク等が用いられ、半導体集積回路設計支援装置１の電源がオフの時にも記憶内容を保持する。不揮発性メモリ５は、半導体集積回路設計支援装置１の電源がオフのときにも記憶内容を保持する必要のあるデータとして、例えば、システム設定値、半導体集積回路設計支援方法で使用する各種データがＣＰＵ２の制御下で格納される。特に、不揮発性メモリ５は、図５の回路情報（ＨＤＬ）５１と、設計制約情報５２と、回路情報（ＮＥＴＬＩＳＴ）５３を格納している。
【００２６】
半導体集積回路設計支援装置１は、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、ＣＤ、ＤＶＤ等のコンピュータが読み取り可能な記録媒体に記録されている半導体集積回路設計支援方法（処理）を実行するプログラムを読み込む。そしてＲＯＭ３又は不揮発性メモリ５に導入する。これにより、当該半導体集積回路設計支援方法を実行する半導体集積回路設計支援装置として構築されている。半導体集積回路設計支援方法を実行するプログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムであり記録媒体に格納して頒布することができる。半導体集積回路設計支援装置１は半導体集積回路設計支援方法を実行するプログラムが導入されることで、図５に示す機能ブロックが構築される。
【００２７】
図５は図４の半導体集積回路設計支援装置１により実行される半導体集積回路設計支援処理の機能処理部を示すブロック図である。当該装置１は当該プログラムが導入されると、図５のごとく、回路情報読取部４１、論理抽出部４２、設計制約情報読取部４３、ユースケース抽出部４４、ユースケース毎の動作中固定信号抽出部４５、論理最適化部４６、回路情報出力部４７が構築される。
【００２８】
以下、図面を参照して本発明の実施形態について説明する。本実施形態は、半導体集積装置の設計に際して、以下の特徴を有する。半導体集積回路の論理合成処理において、これまで用いてこなかった動的な設計制約情報から論理回路のユースケース（使用ケース）を抽出し、抽出したユースケース毎に動作中に固定となる信号情報を抽出し、異なるユースケース間で回路リソースを共有化する。これにより、従来の設計手法より回路規模を削減することが可能となることが特徴になっている。ここで、ユースケースとは、当該論理回路が外部に対して提供する種々の機能（又は動作）をいい、具体的には、使用する場合の種々のケースの機能（又は動作）をいう。
【００２９】
図５において、回路情報読取部４１は、回路情報（ＨＤＬ）５１を読み込み論理抽出部４２に出力する。論理抽出部４２は読み込んだ回路情報（ＨＤＬ）５１から論理情報を抽出してユースケース毎の動作中固定信号抽出部４５に出力する。設計制約情報読取部４３は設計制約情報５２を読み込んでユースケース抽出部４４に出力する。ユースケース抽出部４４は読み込んだ設計制約情報５２からユースケース情報を抽出してユースケース毎の動作中固定信号抽出部４５に出力する。ユースケース毎の動作中固定信号抽出部４５は入力される論理情報とユースケース情報から、ユースケース毎に動作中に固定される固定信号情報を抽出して論理最適化部４６に出力する。論理最適化部４６は、入力される固定信号情報及び設計制約情報５２に基づいて論理回路の一部の削除及び／又はその回路リソースの共有化を行うことで回路の論理の最適化を行って最適化された回路情報を回路情報出力部４７に出力する。回路情報出力部４７は入力される回路情報（ＮＥＴＬＩＳＴ）５３を出力する。
【００３０】
以下、図５の機能処理部を用いた半導体集積回路設計支援処理の複数の実施例について以下に説明する。
【実施例１】
【００３１】
図６は実施例１にかかる図５の設計制約情報５２の一例を示す図である。図６は具体的には、「ｓｙｓｔｅｍ  ｖｅｒｉｌｏｇ  ａｓｓｅｒｔｉｏｎ」という言語で記述された設計制約情報の例である。
【００３２】
図６の１行目の設計制約情報「ｍｏｄｅ」は、クロックＣＬＫの立上りで、実行信号ＲＵＮがＨｉ（ハイレベル）のとき、動作モード信号ＭＯＤＥが変化しないことを表している。実行信号ＲＵＮが論理回路動作中を示す信号であると仮定すると、論理回路動作中は、動作モード信号ＭＯＤＥが変わらないことを表す。図６の２行目の設計制約情報「ｅｎ１」はクロックＣＬＫの立上りで、実行信号ＲＵＮがＨｉ（ハイレベル）かつ動作モード信号ＭＯＤＥがＨｉ（ハイレベル）のときイネーブル信号ＥＮは１であることを表している。図６の３行目の設計制約情報「ｅｎ２」はクロックＣＬＫの立上りで、実行信号ＲＵＮがＨｉ（ハイレベル）かつ動作モード信号ＭＯＤＥがＬｏ（ローレベル）のとき、イネーブル信号ＥＮは０であることを表している。
【００３３】
ユースケース毎の動作中固定信号抽出部４５は以下のように動作する。以上の３つの設計制約により、実行信号ＲＵＮがＨｉ（ハイレベル）のとき（論理回路動作中）は動作モード信号ＭＯＤＥの値によってイネーブル信号ＥＮの値が決定され動作モード信号ＭＯＤＥの値は変化しないので、イネーブル信号ＥＮも変化しない。また、実行信号ＲＵＮがＬｏ（ローレベル）の時（論理回路の停止中）は動作モード信号ＭＯＤＥの値は変化させることが可能であり、また、イネーブル信号ＥＮの値も変化するということがわかる。つまり、論理回路のユースケースとして動作モード信号ＭＯＤＥが０と１になる２つのユースケースが存在し、それぞれのユースケースで、動作モード信号ＭＯＤＥが動作中に固定されることがわかる。「Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ  Ａｓｓｅｒｔｉｏｎ」はＩＥＥＥ  Ｓｔａｎｄａｒｄ  １８００−２００５として標準化し、２００９年にＩＥＥＥ  １８００−２００９として改定されている「ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ」のサブセットとして規定されている。これは設計意図、設計制約を言語化し、主に検証目的でシミュレーション時に使用される。例えば、ｍｔ０アサーションについては、クロックＣＬＫの立上り、イネーブル信号ＥＮ１＝ＥＮ２（両方のイネーブル信号が同一値）となったときに、アサーション違反（発火）をシミュレーションログに出力する。「Ｓｙｓｔｅｍ  ｖｅｒｉｌｏｇ  ａｓｓｅｒｔｉｏｎ」は、設計制約を記述例として示すための一例であり、設計制約は、「ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ  ａｓｓｅｒｔｉｏｎ」以外の言語で記述することも可能である。
【００３４】
図７は図７の設計制約情報５２から抽出されたユースケース情報によって論理最適化を行った後の回路を示す回路図である。すなわち、図７は、図２で説明した回路情報５１に対して、図６で示した設計制約情報５２を与えたときの、論理最適化結果の論理回路である。図７において、この論理回路は１つのマルチプレクサＭＵＸと、１つのレジスタＲＥＧ１とを備えて構成される。
【００３５】
上述した通り、図６の設計制約情報５２から、論理回路のユースケースとして動作モード信号ＭＯＤＥが０と１になる２つのユースケースが存在し、それぞれのユースケースで、動作モード信号ＭＯＤＥが動作中に固定されることがわかっている。論理最適化部４６は以上の状況のもとで以下のように動作する。この信号固定情報から、動作モード信号ＭＯＤＥ＝０のユースケースでは、レジスタＲＥＧ２からの出力信号が出力信号ＯＵＴへ伝播することがない。また、動作モード信号ＭＯＤＥ＝１のユースケースでは、レジスタＲＥＧ１からの出力信号が出力信号ＯＵＴへ伝播することがない。つまり、２つのユースケースで保持すべき出力信号は１つであることが分り、１つのレジスタＲＥＧ１を２つのユースケースで共有することが可能であることが分る。
【００３６】
２つのレジスタを１つのレジスタＲＥＧ１で共有できることが分ると、レジスタＲＥＧ１への入力信号の経路も変更され、入力信号ＩＮ１と入力信号ＩＮ２をイネーブル信号ＥＮで選択してレジスタへと渡せばよいことが分る。イネーブル信号ＥＮが動作中に変化することがないため、イネーブル信号ＥＮの切り替え時の出力を保証するためのループバック経路も不要なことが分る。最適化後の論理回路の動作は以下の通りである。
【００３７】
（１）イネーブル信号ＥＮ＝Ｈｉ（ハイレベル）のとき、ＤＵＴモジュールは常にクロックＣＬＫの立上りエッジで入力信号ＩＮ１をレジスタＲＥＧ１がラッチして出力信号ＯＵＴへ出力する。
（２）イネーブル信号ＥＮ＝Ｌｏ（ローレベル）のとき、ＤＵＴモジュールは常にクロックＣＬＫの立上りエッジで入力信号ＩＮ２をレジスタＲＥＧ１がラッチして出力信号ＯＵＴへ出力する。
【００３８】
この動作は、設計制約情報５２を考慮すると図２で示した回路情報の動作と変わることがない。図７の論理回路は、図３に示した論理回路と比較して、マルチプレクサ２個、インバータ１個、レジスタ１個が削減できている。これは、イネーブル信号ＥＮはＨｉ（ハイレベル）とＬｏ（ローレベル）の両方の状態がありえるが、動作中に変化することがないというユースケースから得られた固定信号情報（動的な設計制約）により、既存の最適化手法より論理最適化が可能な例である。
【実施例２】
【００３９】
図８は実施例２にかかる図５の回路情報５１の一例であるステートマシンの論理回路の回路情報を示す図である。図８の論理回路は、入力信号ＩＮ０，ＩＮ１，ＩＮ２の３つの入力ポートを有し、出力信号ＯＵＴの１つの出力ポートを有する。３つの入力信号ＩＮ０，ＩＮ１，ＩＮ２はクロックＣＬＫの立上りで、それぞれ入力信号ＩＮ０がレジスタｒｅｇ０に取り込まれ、入力信号ＩＮ１がレジスタｒｅｇ１に取り込まれ、入力信号ＩＮ２がレジスタｒｅｇ２へ取り込まれる。現在のステート信号ｓｔａｔｅの値（状態値）によって出力信号ＯＵＴへ取り込む信号が変化する。内部ステートを示すステート信号ｓｔａｔｅは、１サイクル毎に０→１→２→０…と変化する。
【００４０】
図９は図８の有限ステートマシン（ＦＳＭ）の論理回路を示す回路図である。ここで、有限ステートマシン（ＦＳＭ）の論理回路については本実施形態の説明に不要であるため詳細説明しない。この論理回路は、３つの入力レジスタｒｅｇ０，ｒｅｇ１，ｒｅｇ２と、マルチプレクサｍｕｘ１と、出力レジスタｏｒｅｇとを備えて構成される。この論理回路は入力信号を一度入力レジスタｒｅｇ０，ｒｅｇ１，ｒｅｇ２で受けて、マルチプレクサｍｕｘ１により有限ステートマシン（ＦＳＭ）の状態に基づいて選択され、選択信号が出力レジスタｏｒｅｇを介して出力される回路である。
【００４１】
図１０は図８のステートマシンの論理回路の状態遷移図である。図１０の状態遷移図から、回路のユースケースを抽出する一例を示す。図１０において、「ステート信号ｓｔａｔｅ＝＝０の状態」を状態Ａと表し、「ステート信号ｓｔａｔｅ＝＝１」の状態を状態Ｂと表し、「ステート信号ｓｔａｔｅ＝＝２の状態」を状態Ｃと表している。
【００４２】
図８を参照して上述した通り、ステート信号ｓｔａｔｅは０→１→２→０→１…と変化する。つまり、ユースケース毎の動作中固定信号抽出部４５により、ステートマシンの状態遷移から抽出したユースケースは、以下の通りである。
【００４３】
（１）現在のステートが状態Ａのとき、次サイクルで必ず状態Ｂへ遷移し、状態Ａ，Ｃへ遷移することはない。
（２）現在のステートが状態Ｂのとき、次サイクルで必ず状態Ｃへ遷移し、状態Ｂ，Ａへ遷移することはない。
（３）現在のステートが状態Ｃのとき、次サイクルで必ず状態Ａへ遷移し、状態Ｃ，Ｂへ遷移することはない。
【００４４】
このユースケースより、論理最適化部４６は以下の動的な固定信号情報を得ることができる。
（１）ステート信号ｓｔａｔｅが０のとき、次のサイクルのステート信号ｓｔａｔｅ１である。
（２）ステート信号ｓｔａｔｅが１のとき、次のサイクルのステート信号ｓｔａｔｅは２である。
（３）ステート信号ｓｔａｔｅが２のとき、次のサイクルのステート信号ｓｔａｔｅは３である。
【００４５】
これは、実施例１で示した論理回路の動作／停止中での固定信号情報とは異なり、現サイクルの信号情報を基にした、次サイクルの信号情報の固定化の例である。得られた信号の固定値情報から、以下の論理最適化情報を得ることができる。
【００４６】
（１）現サイクルのステート信号ｓｔａｔｅ＝０であれば、レジスタｒｅｇ１への代入に関する論理は動作する必要がある。
（２）現サイクルのステート信号ｓｔａｔｅ＝１であれば、レジスタｒｅｇ２への代入に関する論理は動作する必要がある。
（３）現サイクルのステート信号ｓｔａｔｅ＝２であれば、レジスタｒｅｇ０への代入に関する論理は動作する必要がある。
【００４７】
逆説的に、以下の論理最適化情報も得ることができる。
【００４８】
（１）現サイクルのステート信号ｓｔａｔｅ＝０であれば、レジスタｒｅｇ０，ｒｅｇ２への代入に関する論理は不要である。
（２）現サイクルのステート信号ｓｔａｔｅ＝１であれば、レジスタｒｅｇ０，ｒｅｇ１への代入に関する論理は不要である。
（３）現サイクルのステート信号ｓｔａｔｅ＝２であれば、レジスタｒｅｇ１，ｒｅｇ２への代入に関する論理は不要である。
【００４９】
これは、状態遷移図という設計制約情報５２を与えることで、サイクルベースのユースケースを抽出し、論理最適化情報を得ることができるという例である。
【００５０】
図１１は図１０の状態遷移を設計制約情報５２として与えたときの一例を示す図である。図１１は言語「Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ  Ａｓｓｅｒｔｉｏｎ」で記述した設計制約情報５２の例である。以下、「ステート信号ｓｔａｔｅ＝＝０」の状態を状態Ａと表し、「ｓｔａｔｅ＝＝１」の状態を状態Ｂと表し、「ｓｔａｔｅ＝＝２」の状態を状態Ｃと表している。
【００５１】
（１）図１１の１行目の「ｓｔＡ−０」は、前ステートが状態Ａであれば、現ステートは状態Ｂであるという設計制約である。
（２）図１１の２行目の「ｓｔＢ−０」は、前ステートが状態Ｂであれば、現ステートは状態Ｃであるという設計制約である。
（３）図１１の３行目の「ｓｔＣ−０」は、前ステートが状態Ｃであれば、現ステートは状態Ａであるという設計制約である。
【００５２】
以上の３つの設計制約情報５２から以下のユースケース情報を得ることができる。
【００５３】
（１）現在のステートが状態Ａのとき、次サイクルで必ず状態Ｂへ遷移し、状態Ａ，Ｃへ遷移することはない。
（２）現在のステートが状態Ｂのとき、次サイクルで必ず状態Ｃへ遷移し、状態Ｂ，Ａへ遷移することはない。
（３）現在のステートが状態Ｃのとき、次サイクルで必ず状態Ａへ遷移し、状態Ｃ，Ｂへ遷移することはない。
【００５４】
このユースケース情報より、ユースケース毎の動作中固定信号抽出部４５は、以下の動的な固定信号情報を得ることができる。
【００５５】
（１）ステート信号ｓｔａｔｅが０のとき、次のサイクルのステート信号ｓｔａｔｅは１である。
（２）ステート信号ｓｔａｔｅが１のとき、次のサイクルのステート信号ｓｔａｔｅは２である。
（３）ステート信号ｓｔａｔｅが２のとき、次のサイクルのステート信号ｓｔａｔｅは０である。
【００５６】
これは、実施例１で示した論理回路の動作／停止中での固定信号情報とは異なり、現サイクルの信号情報を基にした、次サイクルの信号情報の固定化の例である。得られた信号の固定値情報から、論理最適化部４６は、以下の論理最適化情報を得ることができる。
【００５７】
（１）現サイクルのステート信号ｓｔａｔｅ＝０であれば、レジスタｒｅｇ１への代入に関する論理は動作する必要がある。
（２）現サイクルのステート信号ｓｔａｔｅ＝１であれば、レジスタｒｅｇ２への代入に関する論理は動作する必要がある。
（３）現サイクルのステート信号ｓｔａｔｅ＝２であれば、レジスタｒｅｇ０への代入に関する論理は動作する必要がある。
（４）現サイクルのステート信号ｓｔａｔｅ＝０であれば、レジスタｒｅｇ０，ｒｅｇ２への代入に関する論理は不要である。
（５）現サイクルのステート信号ｓｔａｔｅ＝１であれば、レジスタｒｅｇ０，ｒｅｇ１への代入に関する論理は不要である。
（６）現サイクルのステート信号ｓｔａｔｅ＝２であれば、レジスタｒｅｇ１，ｒｅｇ２への代入に関する論理は不要である。
【００５８】
これは、アサーションという設計制約情報５２を与えることで、ユースケースを抽出し、削除可能論理を得ることができるという例である。ただ、図１０、図１１で設計制約情報として、状態遷移図やアサーションなどの手法で動的な設計制約情報５２を与えることができる例であり、与えられた設計制約情報５２から同じユースケース情報や同じ固定信号情報を得ることができるという例である。
【実施例３】
【００５９】
図１２は実施例３にかかるステートマシンの論理回路の回路情報５１の一例を示す図である。図１２の論理回路の回路情報は、図８の論理回路の回路情報に選択信号ＳＥＬが追加され（１０４，１０５）、ステート信号ｓｔａｔｅ＝＝１のときに選択信号ＳＥＬの値によってステートマシンの状態の遷移先が分岐している（１０６）。
【００６０】
図１３は図１２のステートマシンの論理回路を最適化なしで図示した回路図である。図１３のステートレジスタｓｔａｔｅｒｅｇの周辺の論理回路はステートマシンであり、図１２の２３行目〜３０行目の記述に相当する論理回路の例である。図１３の論理回路は、図９の論理回路に比較して、ステートレジスタｓｔａｔｅｒｅｇおよび２つのマルチプレクサｍｕｘ２，ｍｕｘ３をさらに備えたことを特徴としている。なお、このステートマシンと等価な回路構成は複数存在する。ただし、この部分の論理回路どのような構成になっているかは、本実施形態とは無関係であるので、詳細説明を省略する。
【００６１】
図１４は図１２のステートマシンの論理回路の状態遷移図である。図１４において、ステート信号ｓｔａｔｅ＝＝０の状態を状態Ａとして表し、ステート信号ｓｔａｔｅ＝＝１の状態を状態Ｂとして表し、ステート信号ｓｔａｔｅ＝＝２の状態を状態Ｃと表している。ステートマシンの状態遷移から、ユースケース抽出部４４は以下のユースケース情報を得ることができる。
【００６２】
（１）現在のステートが状態Ａのとき、次サイクルで必ず状態Ｂへ遷移し、状態Ａ，Ｃへ遷移することはない。
（２）現在のステートが状態Ｂのとき、次サイクルで状態Ａか状態Ｃへ遷移する、状態Ｂへ遷移（とどまる）ことはない。
（３）現在のステートが状態Ｃのとき、次サイクルで必ず状態Ａへ遷移し、状態Ｃ，Ｂへ遷移することはない。
【００６３】
これらのユースケース情報より、ユースケース毎の動作中固定信号抽出部４５は以下の固定信号情報を得ることができる。
【００６４】
（１）ステート信号ｓｔａｔｅが０のとき、次のサイクルのステート信号ｓｔａｔｅは１である、次サイクルのステート信号ｓｔａｔｅが０、又は２になることはない。
（２）ステート信号ｓｔａｔｅが１のとき、次のサイクルのステート信号ｓｔａｔｅは０又は２である、次サイクルのステート信号ｓｔａｔｅが１になることはない。
（３）ステート信号ｓｔａｔｅが２のとき、次のサイクルのステート信号ｓｔａｔｅは０である。次サイクルのステート信号ｓｔａｔｅが１、又は２になることはない。
【００６５】
これらの固定信号情報から、論理最適化部４６は以下の最適化可能論理を抽出することができる。
【００６６】
（１）ステート信号ｓｔａｔｅ＝０のとき、次サイクルはステート信号ｓｔａｔｅ＝０ではないため、レジスタｒｅｇ０への代入に関する論理の動作は不要である。
（２）ステート信号ｓｔａｔｅ＝０のとき、次サイクルはステート信号ｓｔａｔｅ＝１であるため、レジスタｒｅｇ１への代入に関する論理の動作は必要である。
（３）ステート信号ｓｔａｔｅ＝０のとき、次サイクルはステート信号ｓｔａｔｅ＝２ではないため、レジスタｒｅｇ２への代入に関する論理の動作は不要である。
（４）ステート信号ｓｔａｔｅ＝１のとき、次サイクルはステート信号ｓｔａｔｅ＝０の可能性があるため、レジスタｒｅｇ０への代入に関する論理の動作は必要である。
（５）ステート信号ｓｔａｔｅ＝１のとき、次サイクルはステート信号ｓｔａｔｅ＝１であるため、レジスタｒｅｇ１への代入に関する論理の動作は不要である。
（６）ステート信号ｓｔａｔｅ＝１のとき、次サイクルはステート信号ｓｔａｔｅ＝２の可能性があるため、レジスタｒｅｇ２への代入に関する論理の動作は必要である。
（７）ステート信号ｓｔａｔｅ＝２のとき、次サイクルはステート信号ｓｔａｔｅ＝０であるため、レジスタｒｅｇ０への代入に関する論論理の動作は必要である。
（８）ステート信号ｓｔａｔｅ＝２のとき、次サイクルはステート信号ｓｔａｔｅ＝１ではないため、レジスタｒｅｇ１への代入に関する論理の動作は不要である。
（９）ステート信号ｓｔａｔｅ＝２のとき、次サイクルはステート信号ｓｔａｔｅ＝２ではないため、レジスタｒｅｇ２への代入に関する論理の動作は不要である。
【００６７】
以上が、設計制約情報５２から得られた最適化可能論理の情報である。
【００６８】
図１５は図１２のステートマシンの論理回路に対して図１４の状態遷移で最適化したときの回路図である。図１４で説明した最適化可能論理情報より、ステート信号ｓｔａｔｅ＝０、又は２のときは、１つのレジスタへの代入論理のみが必要であることが分るが、ステート信号ｓｔａｔｅ＝１のときは２つのレジスタへの代入論理が必要である。そのため、最適化後でも２つのレジスタが必要であることが導き出せる。最適化の方法は複数存在するが、図１５では、レジスタｒｅｇ２へステート信号ｓｔａｔｅ＝０、又は２のときに動作する必要がある論理を代入し、レジスタｒｅｇ１にステート信号ｓｔａｔｅ＝１の時の論理を代入することで最適化を行った例を示している。
【００６９】
図１５に示すように、図１３の論理回路と比較して、１つのフリップフロップであるレジスタｒｅｇ０が削除できているが、２入力の２つのマルチプレクサｍｕｘ４，ｍｕｘ５が追加されている。一般的にレジスタ（ＦＦ）とマルチプレクサ（ＭＵＸ）では、レジスタの方が回路の面積が大きく、回路動作時の消費電力が高いために、１つのレジスタと２つのマルチプレクサとの交換であっても、１つのレジスタを削除する最適化を選択することもある。
【実施例４】
【００７０】
図１６Ａは実施例４にかかる図１２のステートマシンの論理回路に対して追加の設計制約を与えた場合を示す状態遷移図である。また、図１６Ｂは図１６Ａの追加の設計制約情報５２を示す図である。実施例４では、図１２の論理回路に対して追加で設計制約を与えた場合について説明する。
【００７１】
論理回路として、状態Ｂから状態Ａへ遷移する論理は存在する。しかし、ユースケースとして存在しない場合がある。一般的にはユースケースとして存在しないパスは、回路情報（ＨＤＬ）５１を変更して最適化されるべきである。
【００７２】
しかし、特許発明の適用又は回路の再利用を行う場合などでは、回路情報（ＨＤＬ）５１を変更しない場合がある。このような場合、例えば論理検証時に状態Ｂから状態Ａへの遷移が行われないことを設計制約情報として与えて全てのテストシナリオで設計制約に違反しないことを確認するなどの検証手法がとられることが多い。すなわち、論理最適化部４６は設計制約情報に基づいて論理の最適化を行うか否かを判断し、論理の最適化を行うと判断したときに論理に対して最適化を行う一方、論理の最適化を行わないと判断したときに論理に対して最適化を行わない。
【００７３】
図１２の論理回路であれば、モジュールの外側で選択信号ＳＥＬがＬｏ（ローレベル）に固定されているならば、状態Ｂから状態Ａへは絶対に遷移しない。また、選択信号ＳＥＬ自体はトグルすることがあるが、状態Ｂのときは必ずＬｏ（ローレベル）になるということもある。状態Ｂから状態Ａへ遷移しないという設計制約情報５２を「ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ  Ａｓｓｅｒｔｉｏｎ」で記述した例が図１２である。
【００７４】
図１２で示した論理回路と図１４で示した設計制約情報５２（状態遷移図）に、図１６の設計制約情報５２を追加することで得られるユースケースは、以下の通りである。
【００７５】
（１）現在のステートが状態Ａのとき、次サイクルで必ず状態Ｂへ遷移し、状態Ａ，Ｃへ遷移することはない。
（２）現在のステートが状態Ｂのとき、次サイクルで必ず状態Ｃへ遷移し、状態Ｂ，Ａへ遷移することはない。
（３）現在のステートが状態Ｃのとき、次サイクルで必ず状態Ａへ遷移し、状態Ｃ，Ｂへ遷移することはない。
【００７６】
このユースケースに基づいてユースケース毎の動作中固定信号抽出部４５により得られる固定信号情報は以下の通りである。
【００７７】
（１）ステート信号ｓｔａｔｅが０のとき、次のサイクルのステート信号ｓｔａｔｅは１である、次サイクルのステート信号ｓｔａｔｅが０、又は２になることはない。
（２）ステート信号ｓｔａｔｅが１のとき、次のサイクルのステート信号ｓｔａｔｅは２である、次サイクルのステート信号ｓｔａｔｅが０、又は１になることはない。
（３）ステート信号ｓｔａｔｅが２のとき、次のサイクルのステート信号ｓｔａｔｅは０である。次サイクルのステート信号ｓｔａｔｅが１、又は２になることはない。
【００７８】
得られた信号の固定値情報から、論理最適化部４６は以下の論理最適化情報を得ることができる。
【００７９】
（１）現サイクルのステート信号ｓｔａｔｅ＝０であれば、レジスタｒｅｇ１への代入に関する論理は動作する必要がある。
（２）現サイクルのステート信号ｓｔａｔｅ＝１であれば、レジスタｒｅｇ２への代入に関する論理は動作する必要がある。
（３）現サイクルのステート信号ｓｔａｔｅ＝２であれば、レジスタｒｅｇ０への代入に関する論理は動作する必要がある。
（４）現サイクルのステート信号ｓｔａｔｅ＝０であれば、レジスタｒｅｇ０，ｒｅｇ２への代入に関する論理は不要である。
（５）現サイクルのステート信号ｓｔａｔｅ＝１であれば、レジスタｒｅｇ０，ｒｅｇ１への代入に関する論理は不要である。
（６）現サイクルのステート信号ｓｔａｔｅ＝２であれば、レジスタｒｅｇ１，ｒｅｇ２への代入に関する論理は不要である。
【００８０】
以上が設計制約情報５２から得られた最適化可能論理の情報である。
【００８１】
図１７は図１２のステートマシンの論理回路に対して図１６Ａ及び図１６Ｂの追加の設計制約情報５２を与えて最適化したときの論理回路の一例を示す回路図である。図１７の論理回路は、図１３の論理最適化前の論理回路と比較して、２つのレジスタｒｅｇ０，ｒｅｇ２が削除できている。図１５の設計制約追加前の論理回路と比較して、２つのレジスタｒｅｇ０，ｒｅｇ２及び２つのマルチプレクサｍｕｘ３，ｍｕｘ５を削除できている。このように、静的な制約ではなく、ユースケースに代表される動的な設計制約を追加することにより、より回路の論理最適化が可能となる。
【００８２】
変形例．
以上の実施形態においては、図５の論理最適化部４６は回路情報から得られた論理を最適化しているが、本発明はこれに限らず、さらに図１のセルライブラリ２５及びライブラリマッピング部２３を備えてもよい。これにより、回路情報５３にネットリストを含ませることができる。
【００８３】
以上の実施形態では、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。れら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。
【００８４】
実施形態のまとめ．
本実施形態にかかる半導体集積回路設計支援装置は、
論理回路の回路情報５１から論理を抽出する論理抽出部４２と、
前記論理回路を設計するときの設計制約情報５２からユースケース情報を抽出するユースケース抽出部４４と、
前記抽出された論理と前記抽出されたユースケース情報とに基づいて、ユースケース毎の動作中に固定される固定信号情報を抽出するユースケース毎の動作中固定信号抽出部４５と、
前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて前記抽出された論理を最適化する論理最適化部４６とを備えたことを特徴とする。
【００８５】
従って、回路のユースケース情報を考慮した、回路の動作中のみ固定される信号情報を用いて論理を最適化することで、静的な設計制約を用いた論理最適化手法以上の論理を最適化することができる。
【００８６】
また、論理最適化部４６は、前記抽出されたユースケース毎の固定信号情報及び前記設計制約情報に基づいて、前記論理回路の一部分の削除と共有化の少なくとも一方を行うことで前記抽出された論理を最適化することを特徴とする。
【００８７】
論理最適化部４６はさらに設計制約情報に基づいて論理の最適化を行うか否かを判断し、論理の最適化を行うと判断したときに論理に対して最適化を行う一方、論理の最適化を行わないと判断したときに前記論理に対して最適化を行わないことを特徴とする。
【００８８】
これにより、論理最適化効果が低い論理最適化を行わなくすることができ、無駄な処理を行わないので処理コストを大幅に軽減できる。
【００８９】
またさらに、論理最適化部４６はさらに、前記最適化された論理に対して、セルライブラリを参照してライブラリマッピングを行ってネットリストを含む回路情報を生成して出力することを特徴とする。
【００９０】
これにより、ライブラリ情報と回路情報のライブラリマッピング手段を得ることで、ネットリストを含む回路情報５３を出力できる。
【００９１】
特許文献１との相違点．
特許文献１には、シミュレーション結果に基づき、ユースケース情報を取得し、フリップフロップ毎にクロックゲーティングするかどうかを判断することで消費電力を低減させる手段が開示されている。本発明の実施形態とは確かに回路情報からだけでなく外部情報を元にユースケースを得ているという点では似ている点がある。しかし、論理回路のユースケースは、シミュレーションからでは正確に抽出することができないため、ユースケースを考慮するという問題は解消できていない。
【００９２】
これに対して、本実施形態によれば、論理回路のユースケースを考慮すれば、回路の動作中のみ固定される信号が多数存在する。例えば回路停止中に信号が固定され、回路が動作を開始する。回路の動作中はその信号は変化しない。回路が停止すれば、再び信号が別の値に固定され、回路が動作する。このような回路の動作中に固定される信号情報より、異なるユースケース間での回路リソースの共有化が可能となり、従来手法より論理最適化が可能になる。従って、ユースケース情報からそのユースケースで使わない論理を抽出し、論理を最適化することで回路規模を削減することができる。
【符号の説明】
【００９３】
１…半導体集積回路設計支援装置、
２…ＣＰＵ、
３…ＲＯＭ、
４…ＲＡＭ、
５…不揮発性メモリ、
６…入力インターフェース（入力Ｉ／Ｆ）、
７…出力インターフェース（出力Ｉ／Ｆ）、
８…外部インターフェース（外部Ｉ／Ｆ）、
９…バス、
１１…入力デバイス、
１２…出力デバイス、
２０…論理合成処理部、
２１…論理抽出部、
２２…論理最適化部、
２３…ライブラリマッピング部、
２４…設計制約、
２５…セルライブラリ、
３１…回路情報、
３２…回路情報、
４１…回路情報読取部、
４２…論理抽出部、
４３…設計制約情報読取部、
４４…ユースケース抽出部、
４５…ユースケース毎の動作中固定信号抽出部、
４６…論理最適化部、
４７…回路情報出力部、
５１…回路情報、
５２…設計制約情報、
５３…回路情報。
【先行技術文献】
【特許文献】
【００９４】
【特許文献１】特開２０１３−２４２７１４号公報
【図１】
2017228240.tif 000003
【図２】
2017228240.tif 000004
【図３Ａ】
2017228240.tif 000005
【図３Ｂ】
2017228240.tif 000006
【図４】
2017228240.tif 000007
【図５】
2017228240.tif 000008
【図６】
2017228240.tif 000009
【図７】
2017228240.tif 000010
【図８】
2017228240.tif 000011
【図９】
2017228240.tif 000012
【図１０】
2017228240.tif 000013
【図１１】
2017228240.tif 000014
【図１２】
2017228240.tif 000015
【図１３】
2017228240.tif 000016
【図１４】
2017228240.tif 000017
【図１５】
2017228240.tif 000018
【図１６Ａ】
2017228240.tif 000019
【図１６Ｂ】
2017228240.tif 000020
【図１７】
2017228240.tif 000021