(57)【要約】【課題】多階層論理回路の論理合成実行スクリプト作成時の、下位階層モジュールに対する合成指示や制約設定の煩雑さを削減すると共に、下位階層モジュールのＨＤＬ記述再利用を容易化する。【解決手段】ＨＤＬ記述１から入力した論理回路情報を、回路構造解析部３によりレジスタ、演算器、マルチプレクサなどの機能部品として構造解析する。合成指示生成部は、その解析結果と合成指示対応規則４を照合し、論理合成手法を制御するための合成指示を自動生成する。最後にＨＤＬ記述出力部９により、元のＨＤＬ記述１に合成指示が挿入された合成指示付ＨＤＬ記述１０が出力される。この合成指示付ＨＤＬ記述１０を上位階層からの論理合成で使用することにより、合成実行スクリプトでの該論理回路への合成指示が不要となる。【選択図】 図１
2007102631.tif 000002
【特許請求の範囲】
【請求項１】
レジスタ転送レベル（ＲＴＬ：Register Transfer Level）の回路情報を記したＨＤＬ（hardware description language）記述を用いた論理回路設計支援装置であって、
第１のＨＤＬ記述を入力するＨＤＬ記述入力手段と、
前記回路情報から機能部品の種類や接続関係を解析する回路構造解析手段と、
前記回路構造解析手段の解析によって得られた解析結果に基づいて指定の論理合成ツールに対する合成指示を生成する合成指示生成手段と、
前記第１のＨＤＬ記述に前記合成指示を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力手段とを含む論理回路設計支援装置。
【請求項２】
請求項１記載の論理回路設計支援装置であって、
使用する論理合成ツールにおける合成指示方式と、前記回路構造解析手段の解析によって得られた回路構造の特徴との対応付け規則を記憶する合成指示対応規則記憶手段を備え、
前記合成指示生成手段が、前記合成指示対応規則記憶手段中の前記合成指示対応規則を参照するものである論理回路設計支援装置。
【請求項３】
請求項１記載の論理回路設計支援装置であって、
前記合成指示生成手段により生成された合成指示を表示する表示手段と、
人手により合成指示の採用決定するとともに前記合成指示の追加入力を行なう外部入力手段と、
決定された合成指示と前記第１のＨＤＬ記述内の記述箇所との対応付けを行なう合成指示設定手段を含む論理回路設計支援装置。
【請求項４】
請求項１記載の論理回路設計支援装置であって、
前記第１のＨＤＬ記述中の合成指示と前記合成指示生成手段により生成された合成指示とから最適な合成指示を選択する合成指示最適化手段を含む論理回路設計支援装置。
【請求項５】
請求項１記載の論理回路設計支援装置であって、
さらに、前記回路情報から回路動作上のフォルスパスを検出する機能検証手段を含み、
前記合成指示付ＨＤＬ記述出力手段は、前記第１のＨＤＬ記述に前記フォルスパスの情報を追加した第２のＨＤＬ記述を出力する論理回路設計支援装置。
【請求項６】
請求項１記載の論理回路設計支援装置であって、
さらに前記第１のＨＤＬ記述に対する論理合成ツール用の実行スクリプト中の合成指示を入力する合成指示入力手段と、
前記第１のＨＤＬ記述と前記合成指示との対応付けをする合成指示割付手段とを含む論理回路設計支援装置。
【請求項７】
請求項１乃至請求項６のいずれかに記載の論理回路設計支援装置であって、
前記合成指示付ＨＤＬ記述出力手段により生成された各論理回路の第２のＨＤＬ記述を含む論理合成対象の論理回路全体のＨＤＬ記述を入力するＨＤＬ記述一括入力手段と、
前記論理回路と合成指示を結合する合成指示結合手段と、
所定の論理ライブラリおよび合成制約に対して論理最適化しネットリストを生成する論理最適化手段と、
前記ネットリストを出力するネットリスト出力手段とを含む論理回路設計支援装置。
【請求項８】
レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援方法であって、
前記第１のＨＤＬ記述を入力するＨＤＬ記述入力工程と、
前記回路情報から機能部品の種類や接続関係を解析する回路構造解析工程と、
前記回路構造解析工程における解析結果を基に指定の論理合成ツールに対する合成指示を生成する合成指示生成工程と、
人手により合成指示の採用決定および追加入力を行ない決定された合成指示を前記第1のＨＤＬ記述内の記述箇所と対応付けを行なう合成指示設定工程と、
前記第１のＨＤＬ記述に前記合成指示を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力工程とを含む論理回路設計支援方法。
【請求項９】
請求項８記載の論理回路設計支援方法であって、
前記第１のＨＤＬ記述中の合成指示と前記合成指示生成工程により生成された合成指示とから最適な合成指示を選択する合成指示最適化工程を含む論理回路設計支援方法。
【請求項１０】
請求項８記載の論理回路設計支援方法であって、
さらに前記回路情報から回路動作上のフォルスパスを検出する機能検証工程を含み、
前記合成指示付ＨＤＬ記述出力工程は、前記第１のＨＤＬ記述に前記フォルスパスの情報を追加した第２のＨＤＬ記述を出力する工程である論理回路設計支援方法。
【請求項１１】
請求項８記載の論理回路設計支援方法であって、
さらに前記第１のＨＤＬ記述に対する論理合成ツール用の実行スクリプト中の合成指示を入力する合成指示入力工程と、
前記第１のＨＤＬ記述と前記合成指示との対応付けをする合成指示割付工程とを含む論理回路設計支援方法。
【請求項１２】
請求項８乃至請求項１１のいずれかに記載の論理回路設計支援方法であって、
前記合成指示付ＨＤＬ記述出力工程により生成された各論理回路の第２のＨＤＬ記述を含む論理合成対象の論理回路全体のＨＤＬ記述を入力するＨＤＬ記述一括入力工程と、
前記論理回路と合成指示を結合する合成指示結合工程と、
所定の論理ライブラリおよび合成制約に対して論理最適化しネットリストを生成する論理最適化工程と、
前記ネットリストを出力するネットリスト出力工程とを含む論理回路設計支援方法。
【請求項１３】
請求項８記載の論理回路設計支援方法であって、
前記合成指示付ＨＤＬ記述出力工程が、
ｖｅｒｉｌｏｇＨＤＬのマクロ変数による条件分岐付ＨＤＬ記述を出力する工程を含む論理回路設計支援方法。
【請求項１４】
請求項８記載の論理回路設計支援方法であって、
前記合成指示生成工程が、
前記第１のＨＤＬ記述中にマクロ変数による条件分岐が含まれている場合に、
回路構造解析結果からマクロ変数の値を決定し、合成指示付ＨＤＬ記述出力工程が第2のＨＤＬ記述にマクロ変数の値を設定する記述を追加する工程を含む論理回路設計支援方法。
【請求項１５】
請求項８乃至請求項１１のいずれかに記載の論理回路設計支援方法であって、
前記合成指示付ＨＤＬ記述出力工程が、
拡張言語での出力を指定する工程と、
合成指示から拡張言語の記述法への変換ルールを割り付ける工程と、
拡張言語による第２のＨＤＬ記述を出力する工程とを含む論理回路設計支援方法。
【請求項１６】
請求項８記載の論理回路設計支援方法であって、
前記ＨＤＬ記述が、該モジュールに対する合成指示と、
下位階層モジュールであるインスタンスに対する合成指示を含む論理回路設計支援方法。
【請求項１７】
請求項８記載の論理回路設計支援方法であって、
レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて論理合成を行うように構成されており、
論理階層内の個々のモジュールに対して、前記論理ライブラリ内の割付禁止セルを指定する工程を含む論理回路設計支援方法。
【請求項１８】
請求項８記載の論理回路設計支援方法であって、
レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて、
複数の評価値に基づき論理合成を行うように構成されており、論理階層内の個々のモジュールに対して、前記評価値の優先順位を設定する工程を含む論理回路設計支援方法。
【請求項１９】
請求項８記載の論理回路設計支援方法であって、
レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて論理合成を行うように構成されており、ｗｉｒｅ宣言された信号名に対する論理最適化禁止指示を持つ合成指示付ＨＤＬ記述を出力する工程を含む論理回路設計支援方法。
【請求項２０】
請求項８記載の論理回路設計支援方法であって、
レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて論理合成を行うように構成されており、ｃａｓｅ文あるいはｉｆ文に対するセレクタセルのインスタンス名指定を持つ合成指示付ＨＤＬ記述を出力する工程を含む論理回路設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウエア記述言語（hardware description language）を用いて論理回路設計を行なう論理回路設計支援装置およびこれを用いた論理回路設計支援方法に関する。
【背景技術】
【０００２】
従来、論理回路の設計では、ＶｅｒｉｌｏｇＨＤＬやＶＨＤＬのようなハードウエア記述言語（以下ＨＤＬとする）によるレジスタ転送レベル（以下ＲＴＬとする：Register Transfer Level）の設計情報から、テクノロジに依存して、面積、タイミング、消費電力などの制約を目的関数として最適化されたゲートレベルネットリストを生成する論理合成が行われている。
【０００３】
論理合成を実行する際には、最適化の目標となる面積、タイミング、消費電力などの制約の他に、フォルスパスのような実動作しないパスに対してタイミング例外の指定を実行する、テストモード時のパスを区別するためのケース解析の指定、階層展開の指定、などの合成中の回路の扱い方を指示するための合成指示を入力する必要がある。
【０００４】
このような合成指示は、論理合成実行時のスクリプトとして記述され、論理階層内のインスタンス名やネット名が使用されることになる。ここでスクリプトとは合成の仕方などの指定を記述したものをいう。
ただし、一部の合成指示は、論理回路を構成する個々のモジュール単位で設定可能なものもあり、現在市販されている論理合成ツールでも、ツールへの合成指示として、該モジュールへの制約や属性の設定をＨＤＬ記述中のコメント行で記述することができる（例えば、非特許文献１参照。）。
【０００５】
また、ＨＤＬ記述中の合成指示の方法として、対象の箇所を論理記述に近い型で合成する部分マッピングを指定する論理合成手法が提案されている（例えば、特許文献１参照。）。
【０００６】
【特許文献１】特許公報  第２８４８３３２号  （第４頁、第２図）
【非特許文献１】Synopsys Online Documentation HDL Compiler Directives chapter in HDL Compiler (Presto Verilog) Reference Manual
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、論理合成ツールの対象回路規模は年々増大しており、数百万〜数千万ゲート単位での論理合成が可能となりつつあり、従来の論理合成実行時のスクリプトにて下位階層のモジュール内に対する指示を記述する方法では階層名が長くなり、人手作成による設定漏れや設定ミスが原因で、論理合成のやり直しが発生し、論理合成の工数が増大するという課題を有する。
【０００８】
また、ＩＰのようにＨＤＬ記述と合成スクリプトが組で提供され、その階層もトップからの一括合成の対象とする場合、元のスクリプトに書かれているネット名やインスタンス名をトップからの階層名に変更する必要があり、同様に、人手作成によるミスが発生する可能性がある。また変更した階層名は汎用性が低く、ＩＰとして使用する度に、変更する必要がある。
【０００９】
また、非特許文献１で対応可能なＨＤＬ記述中の合成指示は、モジュールを対象とした制約および属性に限定されており、モジュール内のインスタンスやネットに対する合成指示は、実行スクリプトに記述することになり、同様の課題を有する。
【００１０】
また、非特許文献１および特許文献１で対応されているＨＤＬ記述中の合成指示は、人手記述されたものであり、論理合成ツールの特徴を考慮した合成指示としては十分とは言えず、一旦合成した後の結果を見て、改めて合成指示として記述する場合もあり、このような場合にも同様の課題を有する。
【００１１】
本発明は、前記実情に鑑みてなされたもので、大規模一括合成での合成実行スクリプトの作成を容易化し論理合成の工数を削減することを目的とする。
また本発明は、ＨＤＬ記述の汎用性を高め流用設計の容易化を図る論理回路設計支援装置および方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の論理回路設計支援装置および方法は、上記の目的を達成するために、以下に示す特徴を有する。
本発明の論理回路設計支援装置は、レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援装置であって、前記第１のＨＤＬ記述を入力するＨＤＬ記述入力手段と、前記回路情報から機能部品の種類や接続関係を解析する回路構造解析手段と、解析結果を基に指定の論理合成ツールに対する合成指示を生成する合成指示生成手段と、前記第１のＨＤＬ記述に前記合成指示を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力手段からなることを特徴とする。これにより、回路構造に基づいた合成指示を生成し、それをＨＤＬ記述に持たせることにより、大規模一括合成での合成スクリプト作成を容易化し、論理合成の工数を削減することができる。また、出力された合成指示付ＨＤＬ記述は種々の設計に容易に流用可能である。
【００１３】
また、本発明は、上記論理回路設計支援装置において、指定の論理合成ツールにおける合成指示方法と回路構造の特徴との対応付け規則を記憶する合成指示対応規則記憶手段を備え、前記合成指示生成手段が前記合成指示対応規則を参照することを特徴とする。
【００１４】
また、本発明は、上記論理回路設計支援装置において、前記合成指示生成手段により生成された合成指示を表示する表示手段と、人手により合成指示の採用決定および追加入力を行なう外部入力手段と、決定された合成指示を前記第1のＨＤＬ記述内の記述箇所と対応付けを行なう合成指示設定手段を備えたことを特徴とする。
【００１５】
また、本発明は、上記論理回路設計支援装置において、前記第1のＨＤＬ記述中の合成指示と前記合成指示生成手段により生成された合成指示とから最適な合成指示を選択する合成指示最適化手段を備えたことを特徴とする。これにより、過去に作成した第2のＨＤＬ記述上を変更した場合、あるいは使用する論理合成ツールの仕様変更により合成指示の変更が必要な場合でも、最適な合成指示への変更が容易にできる。
【００１６】
また、本発明の論理回路設計支援装置は、レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援装置であって、前記第１のＨＤＬ記述を入力するＨＤＬ記述入力手段と、前記回路情報から回路動作上のフォルスパスを検出する機能検証手段と、前記第１のＨＤＬ記述に前記フォルスパスの情報を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力手段を備えたことを特徴とする。これにより、対象モジュール内のフォルスパスの情報をＨＤＬ記述に持たせることができ、大規模一括合成でのタイミング制約作成を容易化し、論理合成工数を削減できる。
【００１７】
また、本発明の論理回路設計支援装置は、レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援装置であって、前記第１のＨＤＬ記述を入力するＨＤＬ記述入力手段と、前記第１のＨＤＬ記述に対する論理合成ツール用の実行スクリプト中の合成指示を入力する合成指示入力手段と、前記第１のＨＤＬ記述と前記合成指示との対応付けをする合成指示割付手段と、前記第１のＨＤＬ記述に前記合成指示を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力手段を備えたことを特徴とする。これにより、ＩＰや、ＲＴＬ生成ツールなどから出力されたＨＤＬ記述を含む場合でも、個別の制約を記述したスクリプトを使用することなく、大規模一括合成時のスクリプト作成を容易化することができる。
【００１８】
また、本発明の論理回路設計支援方法は、レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援方法であって、前記第１のＨＤＬ記述を入力するＨＤＬ記述入力工程と、前記回路情報から機能部品の種類や接続関係を解析する回路構造解析工程と、解析結果を基に指定の論理合成ツールに対する合成指示を生成する合成指示生成工程と、人手により合成指示の採用決定および追加入力を行ない決定された合成指示を前記第1のＨＤＬ記述内の記述箇所と対応付けを行なう合成指示設定工程と、前記第１のＨＤＬ記述に前記合成指示を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力工程を備えたことを特徴とする。これにより、回路構造に基づいた合成指示を生成し、それをＨＤＬ記述に持たせることにより、大規模一括合成での合成スクリプト作成を容易化し、論理合成の工数を削減することができる。また、出力された合成指示付ＨＤＬ記述は種々の設計に容易に流用可能である。
【００１９】
また、本発明は、上記論理回路設計支援方法において、前記第1のＨＤＬ記述中の合成指示と前記合成指示生成工程により生成された合成指示とから最適な合成指示を選択する合成指示最適化工程を備えたことを特徴とする。これにより、過去に作成した第2のＨＤＬ記述上を変更した場合、あるいは使用する論理合成ツールの仕様変更により合成指示の変更が必要な場合でも、最適な合成指示への変更が容易にできる。
【００２０】
また、本発明の論理回路設計支援方法は、レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援方法であって、前記第１のＨＤＬ記述を入力するＨＤＬ記述入力工程と、前記回路情報からから回路動作上のフォルスパスを検出する機能検証工程と、前記第１のＨＤＬ記述に前記フォルスパスの情報を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力工程を備えたことを特徴とする。これにより、対象モジュール内のフォルスパスの情報をＨＤＬ記述に持たせることができ、大規模一括合成でのタイミング制約作成を容易化し、論理合成工数を削減できる。
【００２１】
また、本発明の論理回路設計支援方法は、レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援方法であって、前記第１のＨＤＬ記述を入力するＨＤＬ記述入力工程と、前記第１のＨＤＬ記述に対する論理合成ツール用の実行スクリプト中の合成指示を入力する合成指示入力工程と、前記第１のＨＤＬ記述と前記合成指示との対応付けをする合成指示割付工程と、前記第１のＨＤＬ記述に前記合成指示を追加した第２のＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力工程を備えたことを特徴とする。これにより、ＩＰや、ＲＴＬ生成ツールなどから出力されたＨＤＬ記述を含む場合でも、個別の制約を記述したスクリプトを使用することなく、大規模一括合成時のスクリプト作成を容易化することができる。
【００２２】
また、本発明は、上記論理回路設計支援方法において、合成指示付ＨＤＬ記述出力工程が、ｖｅｒｉｌｏｇＨＤＬのマクロ変数による条件分岐付ＨＤＬ記述を出力することを特徴とする。これにより、ある条件で回路動作上の問題が発生する回路であっても、防止する論理を自動的にＨＤＬ記述に挿入するため、ＲＴＬ設計時には考慮する必要がない。
【００２３】
また、本発明は、上記論理回路設計支援方法において、合成指示生成工程が、前記第１のＨＤＬ記述中にマクロ変数による条件分岐が含まれている場合に、回路構造解析結果からマクロ変数の値を決定し、合成指示付ＨＤＬ記述出力工程が第2のＨＤＬ記述にマクロ変数の値を設定する記述を追加することを特徴とする。これにより、構造解析に基づいたマクロ変数の設定が可能となり、論理合成のための指示が容易になる。
【００２４】
また、本発明は、上記論理回路設計支援方法において、合成指示付ＨＤＬ記述出力工程が、拡張言語での出力を指定する工程と、合成指示から拡張言語の記述法への変換ルールを割り付ける工程と、拡張言語による第２のＨＤＬ記述を出力する工程を備えていることを特徴とする。これにより、出力される合成指示付ＨＤＬ記述のツール依存性を削減でき、より汎用的に利用できる。
【００２５】
また、本発明は、上記論理回路設計支援方法において、レジスタ転送レベルの回路情報を記したＨＤＬ記述を用いた論理回路設計支援方法であって、前記ＨＤＬ記述が、該モジュールに対する合成指示と、下位階層モジュールであるインスタンスに対する合成指示を含むことを特徴とする。これにより、同一モジュールを複数インスタンス化している場合の柔軟な指示が可能となる。
【００２６】
また、本発明は、レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて論理合成を行う論理回路設計支援方法であって、論理階層内の個々のモジュールに対して、前記論理ライブラリ内の割付禁止セルを指定できるすることを特徴とする。これにより、トップからの一括合成のみで、個別の再合成が不要となり、論理合成工数を削減できる。
【００２７】
また、本発明は、レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて、複数の評価値に基づき論理合成を行う論理回路設計支援方法であって、論理階層内の個々のモジュールに対して、前記評価値の優先順位を設定することを特徴とする。これにより、トップからの一括合成のみで、回路の特徴に併せた最適化手法を適用することができる。
【００２８】
また、本発明は、レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて論理合成を行う論理回路設計支援方法であって、前記ＨＤＬ記述が、ｗｉｒｅ宣言された信号名に対する論理最適化禁止指示を持つ合成指示つきＨＤＬ記述であることを特徴とする。これにより、故障観測点とテストモード信号によるセレクタとの間の論理最適化を防ぎ、所望の故障検出率を保つことができる。
【００２９】
また、本発明は、レジスタ転送レベルの回路情報を記したＨＤＬ記述と論理ライブラリを用いて論理合成を行う論理回路設計支援方法であって、前記ＨＤＬ記述が、ｃａｓｅ文あるいはｉｆ文に対するセレクタセルのインスタンス名指定を持つ合成指示つきＨＤＬ記述であることを特徴とする。これにより、セレクタとしてマッピングされるセルのインスタンス名を指示することにより、テスト回路に対するセレクタへの制約設定が容易になる。また、セルを直接インスタンスとする必要がなくなりＨＤＬ記述をより汎用的にすることができる。
【発明の効果】
【００３０】
本発明の論理回路設計支援装置では、ＲＴＬのＨＤＬ記述からの構造解析あるいは機能検証に基づき指定の論理合成ツールのための合成指示を生成し、合成指示付ＨＤＬ記述として出力するように構成されている。また、拡張言語での出力を指定した場合には、合成指示から拡張言語への変換を行なうように構成されている。また、ＩＰのようにＨＤＬ記述と合成スクリプトが組みで提供されている場合でも、合成スクリプト中の合成指示をＨＤＬ記述に挿入するように構成されている。また、過去に生成された合成指示付ＨＤＬ記述に対しても最適な合成指示に変更するように構成されている。
従って、出力された合成指示付ＨＤＬ記述は流用設計への展開が容易となり、このＨＤＬ記述を使用する他の品種の設計も効率化することが可能となる。
【００３１】
さらに、本発明の論理回路設計支援装置では、出力された各合成指示付ＨＤＬ記述を入力として論理合成を行うように構成される。
従って、大規模一括合成での合成スクリプト作成を容易化し、論理合成の工数を削減することができる。
【００３２】
さらに、本発明の論理回路設計支援方法では、合成指示として、モジュール別に最適化優先や割付禁止セルの指定を行うようにすることもできる。
従って、上位階層からの一括合成が可能となり、論理合成の工数を削減することができる。
【００３３】
さらに、本発明の論理回路設計支援方法は、合成指示として、セレクタのインスタンス名の指定、最適化禁止ネットの指定を行うようにすることもできる。
従って、テスト回路に対するセレクタ論理への制約設定が容易になり、また所望の故障検出率を保つことができる。
さらに、本発明の論理回路設計支援方法は、構造解析に基づいたマクロ変数による条件分岐付ＨＤＬ記述の生成、およびマクロ変数の値設定を行うようにすることもできる。
従って、ある条件で回路動作上の問題が発生する回路であっても、ＲＴＬ設計時や論理合成時の考慮が不要になる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態を、図面を参照しつつ詳細に説明する。
（実施の形態１）
図１は本発明の実施の形態１による論理回路設計支援装置の構成を示すブロック図である。この論理回路設計支援装置は、図１に示すように、ＲＴＬの回路情報を記したＨＤＬ記述１を入力するＨＤＬ記述入力手段２と、この入力されたＨＤＬ記述の回路情報から回路構造を解析する回路構造解析手段３と、この回路構造解析手段３による回路構造解析結果から得られた回路構造の特徴と、指定の論理合成ツールにおける合成指示方式と対応付け規則を記憶する合成指示対応規則記憶手段４から得られた合成指示対応規則とを合成し、合成指示を生成する合成指示生成手段５と、この合成指示生成手段５で生成された合成指示を表示用に設定する合成指示設定手段６と、生成された合成指示を表示する表示手段７と、人手により合成指示の採用決定および追加入力を行なう外部入力手段８と、さらに合成指示を追加した合成指示付ＨＤＬ記述１０を出力する合成指示付ＨＤＬ記述出力手段９を具備している。
【００３５】
図２は実施の形態１に係る論理回路設計支援装置におけるその設計支援方法を示すフローチャート図である。図２に基づいて、本実施の形態に係る論理回路設計支援装置の動作を図１の構成に対応づけて説明する。
まず、最初に、ステップ１０１において、ＨＤＬ記述入力手段２は、ＨＤＬ記述１に記載されたＲＴＬの回路情報を入力する。次にステップ１０２において、回路構造解析手段３は、入力した回路情報から、ＲＴＬ論理回路の構成要素であるレジスタ、演算器、マルチプレクサなどの機能部品からなる接続情報を作成し、機能部品の種類、接続関係、論理段数などの解析結果を生成する。
【００３６】
次にステップ１０３において、合成指示生成手段５は、論理回路解析結果と、合成指示対応規則記憶手段４に格納されている合成指示対応規則との対応付けを行う。次にステップ１０４において、合成指示設定手段６は、生成された合成指示を表示手段７に表示し、外部入力手段８から人手により合成指示の採用決定および追加入力を行ない、決定された合成指示をＨＤＬ記述１内の記述箇所との対応付けを行なう。次にステップ１０５において、合成指示付ＨＤＬ記述出力手段９は、合成指示を追加した合成指示付ＨＤＬ記述１０を出力する。
【００３７】
図３は、図１で説明した合成指示付ＨＤＬ記述出力手段９の動作の詳細を示すフローチャート図である。図３のステップ１０６において、出力する言語タイプを指定する。次にステップ１０７において、指定された言語が拡張言語かどうか判定する。例えば、出力言語としてＳｙｓｔｅｍＶｅｒｉｌｏｇを指定した場合、ＶｅｒｉｌｏｇＨＤＬの拡張言語であると判断される。指定された言語が拡張言語でなければ、ステップ１１０に進み、コメント行として合成指示を追加したＨＤＬ記述が出力される。一方、拡張言語である場合は、ステップ１０８において、設定された合成指示を言語記述として変換するための言語変換ルールに照合し、変換可能であればステップ１０９において記述変換し、ステップ１１０において指定した言語でのＨＤＬ出力を行なう。
【００３８】
以下、図４乃至図６を用いて、合成指示付ＨＤＬ記述出力手段９が生成する合成指示付ＨＤＬ記述についての例を示す。
【００３９】
図４の（ａ）および（ｂ）は、合成指示付ＨＤＬ記述出力手段９から出力される合成指示付ＨＤＬ記述の例である。（ａ）はモジュールＡのＨＤＬ記述、（ｂ）はモジュールＡをインスタンスＡ１として含むモジュールＢのＨＤＬ記述である。同図において、２０１および２０２は元のＨＤＬ記述に追加された合成指示を示すコメント行である。この例では、モジュールＡが合成指示２０１により階層保持を指示されており、一方、モジュールＢの中でインスタンスＡ１は合成指示２０２により階層展開を指示されていることになる。このように、モジュールに対する指示と、そのモジュールがインスタンス化されたものに対する指示が相反する場合、論理合成の際にはインスタンスへの指示を優先するものとする。
【００４０】
図４（ａ）における階層保持を指示する合成指示２０１や、図４（ｂ）における階層展開を指示する合成指示２０２は、回路構造解析手段３の解析結果と合成指示対応規則４に基づき生成されたものであっても、外部入力手段８から人手入力されたものであってもよい。回路構造解析手段３の解析結果と合成指示対応規則４に基づく例として、「クロック、セット、リセット信号以外の入出力ポートがレジスタと直接接続しているならば、合成時は階層保持する」といったものがあげられる。
【００４１】
次に図５の例について説明する。
図５において、（ａ）は入力となるＨＤＬ記述、（ｂ）は（ａ）のＨＤＬ記述が示す論理回路、（ｃ）は合成指示付ＨＤＬ記述出力手段９で出力される合成指示付ＨＤＬ記述、（ｄ）は（ｃ）のＨＤＬ記述でマクロ変数ＭＥＴＡ＿ＳＴ２０３の値が１の場合の回路である。ＭＥＴＡ＿ＳＴの値が０の場合は（ｂ）の回路になる。（ａ）で示されているフリップフロップＦＦ０からＦＦ１へのパスは、異クロック間の非同期パスであり、メタステーブルと呼ばれるフリップフロップの不安定状態が発生する可能性がある。それを回避するひとつの方法が、（ｄ）に示すようにフリップフロップをもう一つ追加することにより安定化させる回路である。ただし、このメタステーブル状態が発生するのはフリップフロップのセットアップまたはホールドのタイミング制約が満足されない場合であり、タイミングに余裕がある場合は、（ｂ）の回路で十分である。
【００４２】
ここで、（ａ）から（ｃ）へのＨＤＬ記述の変更は、回路構造解析手段３で異クロック間のレジスタ‐レジスタのパスが検出された解析結果に対し、マクロ変数ＭＥＴＡ＿ＳＴを使用した記述に変更、という合成指示対応規則に従ったものである。
【００４３】
さらに、図６は、図５の（ｃ）のマクロ変数ＭＥＴＡ＿ＳＴの値を設定する合成指示２０４を含む合成指示付ＨＤＬ記述である。これは、図５の（ｃ）のＨＤＬ記述を入力して、回路構造解析手段３でマクロ変数ＭＥＴＡ＿ＳＴの使用が検出された解析結果を受けて、ステップ１０４において合成指示設定手段６で外部入力手段８からの２クロックの周期の入力を促し、２クロックの立ち上がりエッジの最小間隔が所定の値以下ならばマクロ変数ＭＥＴＡ＿ＳＴの値を１とし、それ以外は０となるように出力されたものである。または、外部入力手段８から直接マクロの値を設定してもよい。
【００４４】
以上のように、ＲＴＬのＨＤＬ記述を対象とした回路構造解析手段３と、その解析結果を基に指定の論理合成ツールに対する合成指示を生成する合成指示生成手段５と、合成指示を追加したＨＤＬ記述を出力する合成指示付ＨＤＬ記述出力手段９を設けたことにより、大規模一括合成での合成スクリプト作成を容易化することができる。また、出力された合成指示付ＨＤＬ記述は種々の設計に容易に流用可能である。
【００４５】
（実施の形態２）
図７は本発明の実施の形態２による論理回路設計支援装置の構成を示すブロックである。図８は本発明の形態に係る論理回路設計支援装置におけるその方法を示すフローチャート図である。
本実施の形態では回路構造解析手段３によって回路構造の解析を行った後、機能検証を行うようにしたことを特徴とするものである。図７において、１から１０は実施の形態１で示した図１と同様なものである。図１の構成と異なる点は、機能検証手段１１を設けた点である。
【００４６】
図８においても、ステップ１０１からステップ１０２、ステップ１０３からステップ１０５は実施の形態１で示した図２と同様の処理を行なうものである。
【００４７】
以下、ステップ１１１での機能検証手段１１の動作について説明する。
機能検証の手法としては、従来の形式検証技術を使用し、次の２通りの方法によりフォルスパスを検出する。
ひとつは、回路仕様に基づいた検証であり、２つ以上のセレクタ制御信号に対して、実際には取り得ない値の組み合わせを指定することにより、その時に通じるレジスタ間パスをフォルスパスとするものである。
【００４８】
例えば、「制御信号のｓ１とｓ２は同時に同じ値にはならない」という仕様を指定することにより、ｓ１＝ｓ２＝１、またはｓ１＝ｓ２＝０のときに通じるレジスタ間パスはフォルスパスとして設定される。
【００４９】
もうひとつは、その逆に、回路構造解析手段３で検出された論理段数の深いパスに対して、そのパス上のセレクタに対してそのパスが通じる制御信号の値を求め、各制御信号の値が同時に取り得るか否かを検証し、偽であればフォルスパスとするものである。
【００５０】
このようにして検出されたフォルスパスの情報は、ステップ１０５において、設計制約フォーマットにおけるフォルスパス設定コマンドである“set_false_path”を使用して、ＨＤＬ記述中に追加される。
【００５１】
以上のように、回路情報から回路動作上のフォルスパスを検出する機能検証手段１１を設けたことにより、対象回路内のフォルスパスの情報をＨＤＬ記述に持たせることができ、大規模一括合成でのタイミング制約作成を容易化することができる。
【００５２】
（実施の形態３）
図９は本発明の実施の形態３による論理回路設計支援装置の構成を示すブロックである。図１０は本発明の形態に係る論理回路設計支援装置におけるその方法を示すフローチャート図である。本実施の形態では、ＨＤＬとＩＰ（Interectual Property）とを合成するための指示すなわちスクリプト１２を、合成指示入力手段１３を用いて入力し、合成指示割付手段１４を用いて、スクリプト１２内の合成指示をＨＤＬ記述１内の記述に割り付けるようにしたことを特徴とするものである。
【００５３】
図９において、１２はＨＤＬ記述１に対する論理合成実行用のスクリプト、１３はスクリプト１２を入力する合成指示入力手段、１４はスクリプト１２内の合成指示をＨＤＬ記述１内の記述に割り付ける合成指示割付手段である。
【００５４】
図１０に基づいて、本実施の形態に係る論理回路設計支援装置の動作を図９の構成に対応付けて説明する。
図１０において、ステップ１０１のＨＤＬ記述の入力と、ステップ１０５の合成指示付ＨＤＬ記述の出力は、実施の形態１で示した図２と同様の処理を行なうものである。ステップ１１２において、合成指示入力手段１３は、該回路のスクリプト１２を入力し、合成指示を抽出する。次にステップ１１３において、合成指示割付手段１４は、抽出した合成指示が、該回路全体に対するものか、あるいは特定のインスタンスや信号に対するものかを識別し、入力したＨＤＬ記述１との対応付けを行う。その後、対応付けされた合成指示に対してステップ１０５の処理が行なわれる。
【００５５】
以上のように、ＨＤＬ記述１に対する論理合成実行用のスクリプト１２を入力し合成指示を抽出する合成指示入力手段１３と、ＨＤＬ記述と合成指示との対応付けをする合成指示割付手段１４を設けたことにより、ＩＰや、ＲＴＬ生成ツールなどから出力されたＨＤＬ記述を含む場合でも、個別の制約を記述したスクリプトを使用することなく、大規模一括合成時のスクリプト作成を容易化することができる。
【００５６】
（実施の形態４）
図１１は発明の実施の形態４による論理回路設計支援装置の構成を示すブロックである。図１２は本発明の形態に係る論理回路設計支援装置におけるその方法を示すフローチャート図である。
図１１において、図１、図７、図９と同じ番号のものは、上記実施の形態と同様の動作をするものである。
【００５７】
本実施の形態では、図１１に論理回路設計支援装置のブロック図を示すように、ＲＴＬのＨＤＬ記述を対象とした回路構造解析手段３と、その解析結果を基に指定の論理合成ツールに対する合成指示を生成する合成指示生成手段５と、生成された合成指示を設定する合成指示設定手段６を設けるとともに、ＨＤＬ記述１に対する論理合成実行用のスクリプト１２を入力し合成指示を抽出する合成指示入力手段１３と、ＨＤＬ記述と合成指示との対応付けをする合成指示割付手段１４を設け、合成指示付ＨＤＬ記述出力手段９により合成指示付ＨＤＬ記述を得た後、この合成指示付ＨＤＬ記述１０に、トップ階層などの合成指示付ＨＤＬ記述が生成されていない階層のＨＤＬ記述を追加し、論理合成を行うようにしたものである。
【００５８】
すなわち図中の点線で囲まれたＥｓ内の手段は実施の形態２で説明した手段Ｅ２と実施の形態３で説明した手段Ｅ３とで構成される。従って本実施の形態では、このＥｓよりも下流にある、トップ階層などの合成指示付ＨＤＬ記述が生成されていない階層のＨＤＬ記述を、ＨＤＬ記述一括入力手段１６によって一括入力するようにし、さらにこの下流で、階層展開手段１９を用いて階層展開を行い、論理最適化手段で最適化を行い、ネットリスト出力手段２２でネットリスト２３を出力するようにしたものである。
【００５９】
図１１において、１５はトップ階層などの合成指示付ＨＤＬ記述が生成されていない階層のＨＤＬ記述、１６は論理合成の対象となる論理回路の全てのＨＤＬ記述を入力するＨＤＬ記述一括入力手段、１７は論理合成ツールを実行するためのトップ階層のスクリプト、１８は論理回路・合成指示結合手段、１９は階層展開手段、２０は論理ライブラリ、２１は論理最適化手段、２２はネットリスト出力手段、２３はネットリストである。
【００６０】
図１２に基づいて、本実施の形態に係る論理回路設計支援装置の動作を図１１の構成に対応づけて説明する。
なお、論理合成の対象となる論理回路の内、ＩＰのようにＨＤＬ記述と合成スクリプトが組で提供されている場合は、ステップ１１２およびステップ１１３を通るフローで、上記実施の形態３で示したように合成指示付ＨＤＬ記述１０を生成する。その他の論理回路は、ステップ１０２から１０４を通るフローで、上記実施の形態１および２で示したように合成指示付ＨＤＬ記述１０を生成する。
【００６１】
ＨＤＬ記述を出力するステップ１１４において、ＨＤＬ記述一括入力手段１６は、これらの合成指示付ＨＤＬ記述１０と、トップ階層などのＨＤＬ記述１５を入力する。
【００６２】
次に、ステップ１１５において、論理回路・合成指示結合手段１８は、トップ階層の合成スクリプト１７を入力した後、階層構造内の各モジュールと合成指示を結合する。すなわち、論理階層内の各モジュールは、トップ階層からの階層名を持ち、合成指示付ＨＤＬ記述中に記述されていた合成指示は、該階層名に対する設定に変更される。
【００６３】
次に、ステップ１１６において、階層展開手段１９は、階層指示に従い階層展開を行なう。次に、ステップ１１７において、論理最適化手段２１は論理ライブラリ２０を用いて面積、タイミング、消費電力といった設計制約を満足するようにテクノロジマッピングを行う。最後にステップ１１８において、ネットリスト出力手段２２は対象の論理回路全体のネットリスト２３を出力する。
【００６４】
以下、本実施の形態における合成指示付ＨＤＬ記述１０と、その合成指示に従う論理合成の方法について実施例をあげる。
図１３の（ａ）は割付禁止セル指示付ＨＤＬ記述の例である。同（ｂ）は、論理合成対象の論理回路の階層構造を示す図である。（ａ）で記述されているモジュールＡおよびＢは、（ｂ）の階層構造の中でそれぞれ２０７、２０８に位置するものとする。（ａ）の合成指示２０５は、モジュールＡに対して配線混雑に関連するセルの使用禁止を指定するものであり、合成指示２０６は、モジュールＢに対してスキャンフリップフロップの使用禁止を指定するものである。このように指定されたモジュールＡ，Ｂを含む場合、ステップ１１６での階層展開では、モジュールＡおよびＢは階層保持され、ステップ１１７では論理ライブラリ２０内の使用禁止セルをモジュール毎に設定した上で論理最適化を行う。配線混雑に関連するセルの使用禁止とは、例えば、多入力の論理ゲートや複合ゲートの使用を禁止するものである。
【００６５】
図１４は、最適化優先度指示付ＨＤＬ記述の例である。図１４の（ａ）の２０９はモジュールＡに対するタイミング優先を指示する合成指示であり、同（ｂ）の２１０はモジュールＢに対する面積優先を指示する合成指示である。この例でも、モジュールＡおよびＢは、図１３の（ｂ）の階層構造の中の２０７、２０８に位置するものとする。このように指定されたモジュールＡ，Ｂを含む場合、ステップ１１６での階層展開では、モジュールＡおよびＢは階層保持され、ステップ１１７では各優先に従った回路構造を生成し、論理最適化を行う。タイミング優先か面積優先の合成指示は、例えばステップ１０２での回路構造解析における論理段数の見積りに基づき、論理段数が深いパスが多いモジュールはタイミング優先、全体的に論理段数が浅いモジュールでは面積優先と設定することができる。
【００６６】
図１５の（ａ）はｗｉｒｅの論理最適化禁止指示付ＨＤＬ記述の例であり、同（ｂ）はその論理構造を示す図である。図１５の（ａ）の２１１はｗｉｒｅ宣言されたＡに対する論理最適化禁止の合成指示である。同（ｂ）において、２１２はブラックボックス２１３からの出力信号であり、セレクタ２１４で制御信号ｍｏｄｅにより選択される論理となっている。このように指定されたｗｉｒｅ  Ａに対して、ステップ１１７での論理最適化では、ブラックボックス２１３とセレクタ２１４間には論理を挿入しないように処理される。ｗｉｒｅの論理最適化禁止の指示は、例えばステップ１０２での回路構造解析におけるブラックボックスからの出力信号に対してテストモードにより選択されている箇所が検出された場合に設定することができる。
【００６７】
図１６の（ａ）はセレクタセルのインスタンス名指示付ＨＤＬ記述の例であり、同（ｂ）はその論理構造を示す図である。図１６の（ａ）の２１５はｉｆ文により生成されるセレクタセルのインスタンス名を指定する合成指示である。同（ｂ）において、２１６が該セレクタである。このように指定された論理構造に対して、ステップ１１７での論理最適化では、指定のインスタンス名を使用したセレクタセル（マルチプレクサ）へのマッピングが行われる。ここで、合成指示２１５における"＿％ｄ"は、選択対象の信号が複数ビットの場合のビットの値を用いることを示している。ｉｆ文やｃａｓｅ文に対するインスタンス名を指定する合成指示は、例えばステップ１０２での回路構造解析においてテストモードにより制御されているｉｆ文あるいはｃａｓｅ文が検出された場合に設定することができる。
【００６８】
以上のように、各合成指示付ＨＤＬ記述を入力とした論理合成を行うことにより、大規模一括合成による論理合成工数を削減することができる。
【００６９】
さらに、合成指示として、モジュール別の最適化優先の指定、割付禁止セルの指定が可能であるため、上位階層からの最適な一括合成が可能となる。
さらに、合成指示として、セレクタのインスタンス名の指定、最適化禁止ネットの指定が可能であるため、テスト回路に対するセレクタ論理への制約設定が容易になり、また所望の故障検出率を保つことができる。
【００７０】
（実施の形態５）
図１７は本発明の実施の形態５による論理回路設計支援装置の構成を示すブロックである。図１８は本実施の形態に係る論理回路設計支援装置におけるその方法を示すフローチャート図である。
図１７において、１から１１は実施の形態２で示した図７と同様なものである。図７の構成と異なる点は、合成指示最適化手段２４を設けた点である。
図１８においても、ステップ１０１からステップ１０３、ステップ１０４、ステップ１０５は実施の形態２で示した図８と同様の処理を行なうものである。
【００７１】
ステップ１０３で合成指示生成手段５が合成指示を生成した後、ステップ１１９で、合成指示最適化手段２４は、ステップ１０３で生成された合成指示と、ステップ１０１で入力されたＨＤＬ記述１から得られる合成指示との比較を行い、合成指示の内容が衝突する場合はステップ１０３で生成された新しい合成指示に置換する処理を行う。その後、置換された合成指示を含め全ての合成指示に対してステップ１０４以降の処理が行なわれる。
【００７２】
以上のように、ＨＤＬ記述１内の合成指示と合成指示生成手段５により生成された合成指示とから最適な合成指示を選択する合成指示最適化手段２４を設けたことにより、過去に作成した合成指示付ＨＤＬ記述を変更した場合、あるいは使用する論理合成ツールの仕様変更により合成指示の変更が必要な場合でも、最適な合成指示への変更が容易にできる。
【産業上の利用可能性】
【００７３】
本発明にかかる論理回路設計支援装置および論理回路設計支援方法は、合成指示付ＨＤＬ記述出力手段を有し、論理合成処理を含むＬＳＩ設計環境として有用である。またＩＰ流通として有用である。
【図面の簡単な説明】
【００７４】
【図１】実施の形態１による論理回路設計支援装置のブロック図
【図２】実施の形態１による論理回路設計支援方法のフローチャート図
【図３】ＨＤＬ記述出力工程の詳細を示したフローチャート図
【図４】合成指示付ＨＤＬ記述の例を示した図
【図５】合成指示付ＨＤＬ記述の例を示した図
【図６】合成指示付ＨＤＬ記述の例を示した図
【図７】実施の形態２による論理回路設計支援装置のブロック図
【図８】実施の形態２による論理回路設計支援方法のフローチャート図
【図９】実施の形態３による論理回路設計支援装置のブロック図
【図１０】実施の形態３による論理回路設計支援方法のフローチャート図
【図１１】実施の形態４による論理回路設計支援装置のブロック図
【図１２】実施の形態４による論理回路設計支援方法のフローチャート図
【図１３】割付禁止セル指示付ＨＤＬ記述の例
【図１４】最適化優先度指示付ＨＤＬ記述の例
【図１５】wireの論理最適化禁止指示付ＨＤＬ記述の例
【図１６】セレクタセルのインスタンス名指示付ＨＤＬ記述の例
【図１７】実施の形態５による論理回路設計支援装置のブロック図
【図１８】実施の形態５による論理回路設計支援方法のフローチャート図
【符号の説明】
【００７５】
１    ＨＤＬ記述
２    ＨＤＬ記述入力手段
３    回路構造解析手段
４    合成指示対応規則記憶手段
５    合成指示生成手段
６    合成指示設定手段
７    表示手段
８    外部入力手段
９    合成指示付ＨＤＬ記述出力手段
１０  合成指示付ＨＤＬ記述
１１  機能検証手段
１２  論理合成実行スクリプト
１３  合成指示入力手段
１４  合成指示割付手段
２４  合成指示最適化手段
【図１】
2007102631.tif 000003
【図２】
2007102631.tif 000004
【図３】
2007102631.tif 000005
【図４】
2007102631.tif 000006
【図５】
2007102631.tif 000007
【図６】
2007102631.tif 000008
【図７】
2007102631.tif 000009
【図８】
2007102631.tif 000010
【図９】
2007102631.tif 000011
【図１０】
2007102631.tif 000012
【図１１】
2007102631.tif 000013
【図１２】
2007102631.tif 000014
【図１３】
2007102631.tif 000015
【図１４】
2007102631.tif 000016
【図１５】
2007102631.tif 000017
【図１６】
2007102631.tif 000018
【図１７】
2007102631.tif 000019
【図１８】
2007102631.tif 000020