(57)【特許請求の範囲】
【請求項１】
ＲＴＬ記述の回路データを読み込む手段と、
前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出する手段と、
前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化する手段と、
前記ＲＴＬ記述の回路データに対するタイミング制約を読み込む手段と、
前記タイミング制約にタイミング例外が含まれていた場合に、前記ＲＴＬ記述の回路データの当該例外パスをトレースする手段と、
前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別する手段と、
前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離する手段と
を備えたことを特徴とする半導体回路設計支援装置。
【請求項２】
前記１つの演算器としてクラスタ化された演算器の入力に、２つ以上のタイミング例外が設定されており、そのタイミング例外が設定されている入力が同じ種類の演算器の場合に、クラスタ化された演算器から、タイミング例外が設定されている演算器を分離して、前記ＲＴＬ記述の回路データからゲートレベルの回路を生成する手段と
を備えたことを特徴とする請求項１に記載の半導体回路設計支援装置。
【請求項３】
コンピュータがＲＴＬ記述の回路データと当該ＲＴＬ記述の回路データに対するタイミング制約を用いて設計を行なう半導体回路の設計支援方法であって、
前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出するステップと、
前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化するステップと、
前記ＲＴＬ記述の回路データの当該例外パスをトレースするステップと、
前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別するステップと、
前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離するステップと
を備えた半導体回路設計支援方法。
【請求項４】
半導体回路設計支援装置として用いられるコンピュータに、
ＲＴＬ記述の回路データを読み込むステップと、
前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出するステップと、
前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化するステップと、
前記ＲＴＬ記述の回路データに対するタイミング制約を読み込むステップと、
前記ＲＴＬ記述の回路データの当該例外パスをトレースするステップと、
前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別するステップと、
前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離するステップと
を実行させるための半導体回路設計支援プログラム。
【請求項５】
前記１つの演算器としてクラスタ化された演算器の入力に、２つ以上のタイミング例外が設定されており、そのタイミング例外が設定されている入力が同じ種類の演算器の場合に、クラスタ化された演算器から、タイミング例外が設定されている演算器を分離して、前記ＲＴＬ記述の回路データからゲートレベルの回路を生成するステップと
を含むことを特徴とする請求項３に記載の半導体回路設計支援方法。
【請求項６】
半導体回路設計支援装置として用いられるコンピュータに、
前記１つの演算器としてクラスタ化された演算器の入力に、２つ以上のタイミング例外が設定されており、そのタイミング例外が設定されている入力が同じ種類の演算器の場合に、クラスタ化された演算器から、タイミング例外が設定されている演算器を分離して、前記ＲＴＬ記述の回路データからゲートレベルの回路を生成するステップと
を実行させることを特徴とする請求項４に記載の半導体回路設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを使ってＬＳＩ等の半導体回路の設計を支援する技術に関し、特にタイミング例外のパスを含む回路の設計支援技術に関する。
【背景技術】
【０００２】
近年の半導体回路設計においては、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ：レジスタ転送レベル）記述による回路設計が一般に行われており、このＲＴＬ記述された回路データを論理合成し、ゲートレベルの回路を自動生成する論理合成ツールが利用されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２１６６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、既存の論理合成ツールにおいて、下記の演算式を論理合成する。
式：Ｚ＝Ａ×Ｂ×Ｃ
この時、下記のような１、２という異なるタイミング制約で論理合成する。
制約１：Ａ、Ｂ、Ｃの全てがｔｒｕｅ  ｐａｔｈ
制約２：Ａ、Ｃがｆａｌｓｅ  ｐａｔｈ（タイミング例外）、Ｂがｔｒｕｅ  ｐａｔｈ
制約１と２の論理合成結果は、既存の論理合成ツールにおいては、共に後述する図４の構成となり、全く同じ論理回路を生成する。
つまり、既存の論理合成ツールでは、上記のような演算式を論理合成する場合、タイミング制約で設定されているタイミング例外を考慮した論理回路を生成できないという課題がある。
【０００５】
本発明は、上記従来の課題を解決するために、タイミング例外を考慮した論理回路を生成するための技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の半導体回路設計支援装置は、ＲＴＬ記述の回路データを読み込む手段と、前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出する手段と、前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化する手段と、前記ＲＴＬ記述の回路データに対するタイミング制約を読み込む手段と、前記タイミング制約にタイミング例外が含まれていた場合に、前記ＲＴＬ記述の回路データの当該例外パスをトレースする手段と、前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別する手段と、前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離する手段とを備えたことを特徴とする。
【０００７】
また、本発明の半導体回路設計支援方法は、コンピュータがＲＴＬ記述の回路データと当該ＲＴＬ記述の回路データに対するタイミング制約を用いて設計を行なう半導体回路の設計支援方法であって、前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出するステップと、前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化するステップと、前記ＲＴＬ記述の回路データの当該例外パスをトレースするステップと、前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別するステップと、前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離するステップとを備えたことを特徴とする。  
【０００８】
また、本発明の半導体回路設計支援プログラムは、半導体回路設計支援装置として用いられるコンピュータに、ＲＴＬ記述の回路データを読み込むステップと、前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出するステップと、前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化するステップと、前記ＲＴＬ記述の回路データに対するタイミング制約を読み込むステップと、前記ＲＴＬ記述の回路データの当該例外パスをトレースするステップと、前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別するステップと、前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離するステップとを実行させることを特徴とする。
【発明の効果】
【０００９】
本発明の半導体回路設計支援装置及び方法によれば、１サイクルに収めなければならない論理段数を減らし、論理合成して得られる回路の面積を削減することができる。特に、ターゲット周波数が速くなる程、面積削減の効果は大きくなる。
【図面の簡単な説明】
【００１０】
【図１】半導体回路設計支援装置の一実施例の機能ブロック図である。
【図２】図１の半導体回路設計支援装置の処理フロー例である。
【図３】ＲＴＬ記述された回路データの一例である。
【図４】図３に示したＲＴＬの論理を表した図である。
【図５】本回路のタイミングチャートの一例である。
【図６】演算器をクラスタ化した図である。
【図７】クラスタ化された演算器を分離した図である。
【図８】コンピュータシステムのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
図１は本発明における半導体回路設計支援装置の一実施例を示す機能ブロック図である。
図１において、１０は半導体回路設計支援装置、２０はディスプレイ、３０はキーボード、４０はマウス、５０はハードディスク等の記憶装置である。ここで、半導体回路設計支援装置１０はＲＴＬ読み込み部１１、演算器抽出部１２、演算器クラスタ化処理部１３、タイミング制約読み込み部１４、パストレース部１５、タイミング例外判別部１６、演算器分離部１７、及び論理合成部１８で構成される。また、記憶装置５０は、設計対象のＲＴＬ記述の回路データ５１、タイミング制約５２、ゲートライブラリ５３等を格納している。さらに、記憶装置５０には、論理合成部１８で生成されたゲートレベルの論理回路ネットリスト５４が格納される。
【００１２】
図２に半導体回路設計支援装置１０の処理フロー図を示す。図２中、ステップＳ１は図１のＲＴＬ読み込み部１１、ステップＳ２は演算器抽出部１２、ステップＳ３は演算器クラスタ化処理部１３、ステップＳ４はタイミング制約読み込み部１４、ステップＳ５〜９はパストレース部１５、ステップＳ１０〜１１はタイミング例外判別部１６、ステップＳ１２はタイミング演算器分離部１７、ステップＳ１３は論理合成部１８での処理に対応する。
【００１３】
なお、図１で示した半導体回路設計支援装置１０における各処理部１１〜１８の一部もしくは全部の処理機能をコンピュータプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図２で示した処理フローを同様にコンピュータプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。
【００１４】
以下、図１及び図２に基づいて本発明の実施例の動作を具体的に説明する。まず、ＲＴＬ読み込み部１１は、記憶装置５０から設計対象のＲＴＬ記述の回路データ５１を読み込む（ステップＳ１）。ここでは、読み込むＲＴＬ記述の回路データを図３とする。
【００１５】
演算器抽出部１２は、読み込まれたＲＴＬ記述の回路データを論理展開し、回路を構成する演算器を抽出する（ステップＳ２）。図４は図３に示したＲＴＬ記述の回路データを表した図である。ＲｅｇＡ、ＲｅｇＢ、ＲｅｇＣ、ＲｅｇＺは、信号を一時的に保持する記憶素子で、ＭＵＬ１、ＭＵＬ２は、入力された信号を乗算する乗算器である。図３のＲＴＬ記述のように、一つの式に複数の演算を含んでいる場合、式の左から論理展開する。
【００１６】
演算器クラスタ化処理部１３は、記憶素子を跨がない複数の演算器がある場合、一つの演算器として扱う演算器のクラスタ化をおこなう（ステップＳ３）。図６は演算器のクラスタ化を行なった場合を表した図で、ＭＵＬ１とＭＵＬ２を一つの演算器として扱う。
【００１７】
次にタイミング制約読み込み部１４は、記憶回路５０から本回路のタイミング制約５２を読み込む（ステップＳ４）。本回路のタイミング制約を図５を用いて説明する。図５は、演算器に入力する信号Ａ、Ｂ、Ｃの遷移タイミングを表したタイミングチャートである。このタイミングチャートから、ＡとＣの信号変化は、クロックＣＬＫに対して十分長い期間、信号の遷移がなく、Ｂが遷移を繰り返している間も変化しない信号である事が分かる。一方Ｂは、ある期間から１サイクルごとに変化する信号である事がわかる。このような信号仕様であるため、ＡとＣがｆａｌｓｅ  ｐａｔｈ（タイミング例外）として設定されている。つまり、ＲｅｇＡからＲｅｇＺまでのパスと、ＲｅｇＣからＲｅｇＺまでのパスは、１サイクルで信号が伝搬しなくても良いという設定になり、一方、ＲｅｇＢからＲｅｇＺまでは、１サイクル以内に信号が伝搬する必要がある。
【００１８】
パスとレース部１５は、タイミング制約読み込み部１４で読み込んだタイミング制約５２を解析し、タイミング例外が設定されているかどうか判定する（ステップＳ５）。この例ではＡとＣにタイミング例外が設定されているため（ステップＳ５  ＹＥＳ）、例外パスのトレースを行なう（ステップＳ６）。まず、信号ＡはＲｅｇＡからクラスタ化された演算器を通過してＲｅｇＺに到達している。よって、ＲｅｇＡからクラスタ化された演算器がタイミング例外であるという情報を保存しておく（ステップＳ７）。次に、信号Ｃは、ＲｅｇＡと同様に、ＲｅｇＣからクラスタ化された演算器を通過してＲｅｇＺに到達しているので、ＲｅｇＣからクラスタ化された演算器がタイミング例外であるという情報を保存しておく（ステップＳ７）。
【００１９】
全ての例外パスのトレースが終了すると（ステップＳ８  ＹＥＳ）、タイミング例外判別部１６は、タイミング例外として保存しておいた情報を解析し（ステップＳ９）、クラスタ化された演算器の入力にタイミング例外が二つ以上あるかのどうかの判別を行なう（ステップＳ１０）。この例ではタイミング例外が二つあるので（ステップＳ１０  ＹＥＳ）、次に、タイミング例外が設定されている入力が同じ種類の演算器かどうかの判別を行なう（ステップＳ１１）。
【００２０】
この例ではタイミング例外が設定されている入力は、共に同じ乗算器であるので（ステップＳ１１  ＹＥＳ）、演算器分離部１７は、タイミング例外が設定されているパスの演算と、設定されていない演算を分離し、個別に演算器を割り付ける（ステップＳ１２）。本実施例においては、図７で示した論理回路となる。このような演算器の割り付けを行なうことで、ＲｅｇＢからＲｅｇＺまでの１サイクルで収めなければならないパスの論理段数が、図４と比べて小さくなっていることが分かる。
【００２１】
このような演算器の割り付けを行なった後に、論理合成部１８は、論理合成を行ない、論理回路ネットリスト５４を記憶装置５０に格納する（ステップＳ１３）。
【００２２】
その後、論理回路ネットリストを用いて配置・配線レイアウト設計等が実施されるが、これらは本発明と直接関係するところではないので説明は省略する。
【００２３】
図８に本発明が適用されるコンピュータシステムの構成例を示す。ハードディスク５０にはＲＴＬ記述の回路データ、タイミング制約、ゲートライブラリなどに加えて、図１で示した半導体回路設計支援装置１０における各処理部１１〜１８の処理機能をコンピュータプログラム化されたものが記憶されている。ＣＰＵ１００は、ハードディスク５０から該プログラムをメモリ１１０に読み込み、それを実行することで、図１で示した半導体回路設計支援装置１０における、ＲＴＬ記述の回路データの読み込み、演算器抽出、演算器のクラスタ化、タイミング制約の読み込み、パスとレース、タイミング例外の判別、演算器の分離、論理合成等の処理が行なわれる。この時、メモリ１１０は作業用メモリとして使用される。設計者はキーボード３０、マウス４０、を使って作業指示を行い、ディスプレイ２０に結果が表示される。
【００２４】
以下に、本出願の特許請求の範囲に記載された発明を付記する。
[請求項１]
ＲＴＬ記述の回路データを読み込む手段と、
前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出する手段と、
前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化する手段と、
前記ＲＴＬ記述の回路データに対するタイミング制約を読み込む手段と、
前記タイミング制約にタイミング例外が含まれていた場合に、前記ＲＴＬ記述の回路データの当該例外パスをトレースする手段と、
前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別する手段と、
前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離する手段と
を備えたことを特徴とする半導体回路設計支援装置。
[請求項２]
前記１つの演算器としてクラスタ化された演算器の入力に、２つ以上のタイミング例外が設定されており、そのタイミング例外が設定されている入力が同じ種類の演算器の場合に、クラスタ化された演算器から、タイミング例外が設定されている演算器を分離して、前記ＲＴＬ記述の回路データからゲートレベルの回路を生成する手段と
を備えたことを特徴とする請求項１に記載の半導体回路設計支援装置。
[請求項３]
ＲＴＬ記述の回路データを読み込むステップと、
前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出するステップと、
前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化するステップと、
前記ＲＴＬ記述の回路データに対するタイミング制約を読み込むステップと、
前記ＲＴＬ記述の回路データの当該例外パスをトレースするステップと、
前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別するステップと、
前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離するステップと
を備えた半導体回路設計支援方法。
[請求項４]
半導体回路設計支援装置として用いられるコンピュータに、
ＲＴＬ記述の回路データを読み込むステップと、
前記ＲＴＬ記述の回路データを論理展開し、演算器を抽出するステップと、
前記抽出された演算器の中から、記憶素子を跨がない複数の演算器を１つの演算器としてクラスタ化するステップと、
前記ＲＴＬ記述の回路データに対するタイミング制約を読み込むステップと、
前記ＲＴＬ記述の回路データの当該例外パスをトレースするステップと、
前記回路データのパスのトレースに基づいて、前記１つの演算器としてクラスタ化された演算器の入力がタイミング例外に設定されているかどうかを判別するステップと、
前記１つの演算器としてクラスタ化された演算器から、前記タイミング例外が設定されている演算器を分離するステップと
を実行させるための半導体回路設計支援プログラム。
【符号の説明】
【００２５】
１０      半導体回路設計支援装置
１１      ＲＴＬ読み込み部
１２      演算器抽出部
１３      演算器クラスタ化処理部
１４      タイミング制約読み込み部
１５      パストレース部
１６      タイミング例外判別部
１７      演算器分離部
１８      論理合成部
２０      ディスプレイ
３０      キーボード
４０      マウス
５０      記憶装置（ハードディスク）
５１      ＲＴＬ記述データ
５２      タイミング制約
５３      ゲートライブラリ
５４      論理回路ネットリスト
【図１】
0005621792.tif 000002
【図２】
0005621792.tif 000003
【図３】
0005621792.tif 000004
【図４】
0005621792.tif 000005
【図５】
0005621792.tif 000006
【図６】
0005621792.tif 000007
【図７】
0005621792.tif 000008
【図８】
0005621792.tif 000009