(57)【特許請求の範囲】
【請求項１】
予め定められたプログラムを実行する計算機である回路設計ツールが、ハードウェア記述言語によって記述された回路の情報を含む論理回路データに基づき設計対象回路に関するデータを生成する回路設計方法であって、
前記回路設計ツールが、動作検証済みのシンクロナイザ回路を前記ハードウェア記述言語によって表すデータから、前記回路設計ツールのセル・ライブラリの一部であり、前記動作検証済みのシンクロナイザ回路のコンポーネントであるシンクロナイザ・コンポーネントを生成する工程と、
前記回路設計ツールが、複数のクロックドメイン回路および前記クロックドメイン回路各々のクロック信号を同期化する前記シンクロナイザ回路を含む設計対象回路を表す前記論理回路データにおける前記シンクロナイザ回路の部分を前記シンクロナイザ・コンポーネントへマッピングする工程と、
前記回路設計ツールが、前記シンクロナイザ・コンポーネントへのマッピングが成された前記論理回路データから、予め設定される消費電力の条件を含む制約条件を満たすネットリストデータを生成する工程と、
前記回路設計ツールが、前記シンクロナイザ・コンポーネントを利用しつつ前記論理回路データおよび前記ネットリストデータから前記設計対象回路のモデルを生成した後、テスト信号データが入力された前記モデルの処理結果を出力する工程と、
を含む回路設計方法。
【請求項２】
前記回路設計ツールが、前記論理回路データおよび前記ネットリストデータから前記設計対象回路のレイアウトデータを生成する工程をさらに含む、請求項１に記載の回路設計方法。
【請求項３】
前記シンクロナイザ回路がデュアル・ランク・フリップフロップ型の回路である、請求項１または請求項２に記載の回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計方法および回路設計ツール用セル・ライブラリのコンポーネントに関する。
【背景技術】
【０００２】
一般に、ハードウェア記述言語（ＨＤＬ）によって記述された回路の情報を含む論理回路データを回路設計ツールに適用する工程を経て回路を設計することが知られている。前記回路設計ツールとしては、論理合成ツール、レイアウトツールおよび回路検証ツールなどがある。
【０００３】
前記回路設計ツールは、それぞれツールの種類に対応したセル・ライブラリを利用しつつ処理を実行する。前記セル・ライブラリは、それぞれ所定の機能を実現する複数のコンポーネントを含むデータベースである。なお、前記コンポーネントは、マクロセルなどとも称される。前記コンポーネントは、論理機能、電気的特性またはレイアウトなどの回路設計に必要なデータを含む。
【０００４】
前記論理合成ツールは、前記論理回路データからネットリストデータを生成する処理を実行する。前記レイアウトツールは、前記ネットリストデータから回路のレイアウトデータを自動生成する。前記回路検証ツールは、前記論理回路データに基づく回路モデルにテスト信号データを適用し、適用結果を出力する。これにより、前記回路モデルが所望の機能を発揮するか否かを検証することができる。
【０００５】
また、設計対象回路が、複数のクロックドメイン回路および前記クロックドメイン回路各々のクロック信号を同期化するシンクロナイザ回路を含む場合がある。この場合、同期回路設計用のＨＤＬに非同期プロセス間通信を可能とするプリミティブが付加された非同期回路設計言語によって記述されたコードを、同期回路設計用のＨＤＬに変換することなどが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２０２２６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、一般的な回路設計においては、論理合成工程、レイアウト工程および回路検証工程がその順番で行われる。前記論理合成工程は、前記論理合成ツールによって前記論理回路データから前記ネットリストデータを生成する工程である。前記レイアウト工程は、前記レイアウトツールによって前記ネットリストデータから前記レイアウトデータを生成する工程である。
【０００８】
前記回路検証工程は、前記ネットリストデータおよび前記レイアウトデータを前記回路検証ツールに適用することにより、前記論理合成ツールおよび前記レイアウトツールによる設計結果を検証する工程である。前記レイアウト工程の結果または前記回路検証工程の結果に不具合があれば、前記論理回路データの修正または前記論理合成ツールまたは前記レイアウトツールの一方または両方の条件の修正などが行われた上で、各工程が繰り返される。
【０００９】
設計対象回路が前記シンクロナイザ回路を含む場合、前記シンクロナイザ回路のクロックドメインクロッシング（ＣＤＣ）の部分において、複数のクロック信号相互のタイミングの微小なズレに起因する発見し難い不具合が生じやすい。そのため、前記設計対象回路が前記シンクロナイザ回路を含む場合、前記レイアウト工程および前記回路検証工程において、前記ＣＤＣの部分の検証に多大な手間および時間を要する。
【００１０】
本発明の目的は、複数のクロックドメイン回路および前記クロックドメイン回路各々のクロック信号を同期化するシンクロナイザ回路を含む回路を設計する際に、クロックドメインクロッシングの検証のための負荷を軽減して設計工程を効率化できる回路設計方法および回路設計ツール用セル・ライブラリのコンポーネントを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一の局面に係る回路設計方法は、ハードウェア記述言語によって記述された回路の情報を含む論理回路データを回路設計ツールに適用する工程を経て回路を設計する方法であり、以下の各工程を含む。第１の工程は、シンクロナイザ・コンポーネントを予め用意する工程である。前記シンクロナイザ・コンポーネントは、前記回路設計ツールのセル・ライブラリの一部であり、動作検証済みのシンクロナイザ回路のコンポーネントである。第２の工程は、設計対象回路を表す前記論理回路データにおける前記シンクロナイザ回路の部分を前記シンクロナイザ・コンポーネントへマッピングする工程である。前記設計対象回路は、複数のクロックドメイン回路および前記クロックドメイン回路各々のクロック信号を同期化する前記シンクロナイザ回路を含む回路である。第３の工程は、前記シンクロナイザ・コンポーネントへのマッピングが成された前記論理回路データを前記回路設計ツールに適用する工程である。
【００１２】
本発明の他の局面に係る回路設計ツール用セル・ライブラリのコンポーネントは、回路設計ツールのセル・ライブラリの一部であって、複数の非同期のクロック信号を同期化する動作検証済みのシンクロナイザ回路のコンポーネントである。
【発明の効果】
【００１３】
本発明によれば、複数のクロックドメイン回路および前記クロックドメイン回路各々のクロック信号を同期化するシンクロナイザ回路を含む回路を設計する際に、クロックドメインクロッシングの検証のための負荷を軽減して設計工程を効率化できる回路設計方法および回路設計ツール用セル・ライブラリのコンポーネントを提供することが可能になる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施形態に係る回路設計方法の手順の一例を示すフローチャートである。
【図２】図２は、実施形態に係る回路設計におけるシンクロナイザ部分の抽出・マッピング工程の一例を表すフローチャートである。
【図３】図３は、デュアル・ランク・フリップフロップ型のシンクロナイザ回路に相当するハードウェア記述言語による記述内容を表す図である。
【図４】図４は、デュアル・ランク・フリップフロップ型のシンクロナイザ回路のブロック図である。
【図５】図５は、論理回路データにおけるシンクロナイザ・コンポーネントにマッピングされた部分のハードウェア記述言語による記述内容を表す図である。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照しながら、本発明の実施形態について説明する。なお、以下の実施形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格を有さない。
【００１６】
以下、実施形態に係る回路設計方法の手順の一例について説明する。前記回路設計方法は、前記ＨＤＬによって記述された回路の情報を含む論理回路データを回路設計ツールに適用する工程を経て回路を設計する方法である。
【００１７】
前記回路設計ツールは、例えば、論理合成ツール、レイアウトツールおよび回路検証ツールなどである。前記回路設計ツールは、回路設計支援プログラムを実行する計算機である。前記回路設計支援プログラムは、論理合成プログラム、自動レイアウトプログラムおよび回路検証プログラムなどである。
【００１８】
以下、実施形態に係る回路設計方法による設計対象のことを設計対象回路と称する。前記設計対象回路は、例えばデジタル回路である。本実施形態における前記設計対象回路は、複数のクロックドメイン回路およびシンクロナイザ回路を含む回路である。前記シンクロナイザ回路は、前記クロックドメイン回路各々のクロック信号を同期化する回路である。
【００１９】
一般的な回路設計においては、論理合成工程、レイアウト工程および回路検証工程がその順番で行われる。前記論理合成工程は、前記論理合成ツールによって前記論理回路データから前記ネットリストデータを生成する工程である。前記レイアウト工程は、前記レイアウトツールによって前記ネットリストデータから前記レイアウトデータを生成する工程である。
【００２０】
前記回路検証工程は、前記ネットリストデータおよび前記レイアウトデータを前記回路検証ツールに適用することにより、前記論理合成ツールおよび前記レイアウトツールによる設計結果を検証する工程である。前記レイアウト工程の結果または前記回路検証工程の結果に不具合があれば、前記論理回路データの修正または前記論理合成ツールまたは前記レイアウトツールの一方または両方の条件の修正などが行われた上で、各工程が繰り返される。
【００２１】
前記設計対象回路が前記シンクロナイザ回路を含む場合、前記シンクロナイザ回路のクロックドメインクロッシング（ＣＤＣ）の部分において、複数のクロック信号相互のタイミングの微小なズレに起因する発見し難い不具合が生じやすい。そのため、前記設計対象回路が前記シンクロナイザ回路を含む場合、前記レイアウト工程および前記回路検証工程において、前記ＣＤＣの部分の検証に多大な手間および時間を要する。
【００２２】
一方、以下に示される実施形態によれば、複数の前記クロックドメイン回路および前記クロックドメイン回路各々のクロック信号を同期化する前記シンクロナイザ回路を含む回路を設計する際に、前記ＣＤＣの検証のための負荷を軽減して設計工程を効率化できる。
【００２３】
以下、図１を参照しつつ、実施形態に係る回路設計方法の手順の一例について説明する。以下の説明において、Ｓ１０１，Ｓ１０２，…は、回路設計における各工程の識別符号を表す。
【００２４】
＜工程Ｓ１０１＞
前記回路設計工程において、前記設計対象回路の設計が行われる前に、動作検証済みのシンクロナイザ回路のコンポーネントであるシンクロナイザ・コンポーネントを生成するためのシンクロナイザ回路データＳＤが作成される。
【００２５】
シンクロナイザ回路データＳＤは、動作検証済みの前記シンクロナイザ回路を前記ＨＤＬで記述したデータである。
【００２６】
図３は、シンクロナイザ回路データＳＤの一例であり、デュアル・ランク・フリップフロップ型の前記シンクロナイザ回路に相当する前記ＨＤＬによる記述内容を表す。また、図４は、図３に示される前記ＨＤＬの記述内容と等価なデュアル・ランク・フリップフロップ型のシンクロナイザ回路のブロック図である。図４において、曲線の矢印で指し示される部分が前記ＣＤＣの部分である。
【００２７】
＜工程Ｓ１０２＞
次に、シンクロナイザ回路データＳＤからシンクロナイザ・コンポーネントＳＣを生成する工程が実行される。シンクロナイザ・コンポーネントＳＣは、前記回路設計ツールのセル・ライブラリの一部である。
【００２８】
前記回路設計ツールは、ユーザーが作成した回路データからその回路データに相当するコンポーネントを生成し、そのコンポーネントをセル・ライブラリの１つとして追加するコンポーネント追加機能を備える。シンクロナイザ・コンポーネントＳＣは、前記回路設計ツールの前記コンポーネント追加機能によって生成される。
【００２９】
工程Ｓ１０１，Ｓ１０２は、動作検証済みの前記シンクロナイザ回路のコンポーネントであるシンクロナイザ・コンポーネントＳＣを予め用意する工程の一例である。
【００３０】
＜工程Ｓ１０３＞
シンクロナイザ・コンポーネントＳＣが用意された後、前記設計対象回路を表す論理回路データＬＣ０が作成される。前記ＨＤＬによって記述された前記設計対象回路の情報を含むデータである。換言すれば、論理回路データＬＣ０は、前記ＨＤＬによって前記設計対象回路を表すデータである。
【００３１】
＜工程Ｓ１０４＞
次に、工程Ｓ１０３で作成された論理回路データＬＣ０に基づいてシンクロナイザ部分抽出・マッピング工程が行われる。図２は、前記シンクロナイザ部分抽出・マッピング工程の一例を表すフローチャートである。
【００３２】
＜工程Ｓ２０１＞
前記シンクロナイザ部分抽出・マッピング工程において、まず、前記設計対象回路を表す論理回路データＬＣ０における前記シンクロナイザ回路の部分が抽出される。
【００３３】
＜工程Ｓ２０２＞
さらに、論理回路データＬＣ０における抽出部分である前記シンクロナイザ回路の部分が、前記論理合成ツール用のシンクロナイザ・コンポーネントＳＣへマッピングされる。以下、シンクロナイザ・コンポーネントＳＣへのマッピングが成された論理回路データのことを二次論理回路データＬＣと称する。
【００３４】
図５は、二次論理回路データＬＣにおけるシンクロナイザ・コンポーネントＳＣにマッピングされた部分の前記ＨＤＬによる記述内容の一例を表す図である。
【００３５】
工程Ｓ２０１，Ｓ２０２が行われることにより、これ以降の設計工程において、前記設計対象回路における前記シンクロナイザ回路の部分の回路接続およびレイアウトは、シンクロナイザ・コンポーネントＳＣに定義されている回路接続およびレイアウトから変更されない。換言すれば、シンクロナイザ・コンポーネントＳＣに定義されている回路接続およびレイアウトが、前記設計対象回路の設計における拘束条件となる。
【００３６】
＜工程Ｓ１０５＞
二次論理回路データＬＣが得られると、二次論理回路データＬＣを前記論理合成ツールに適用する論理合成工程が行われる。
【００３７】
前記論理合成ツールは、前記論理合成ツールの１つであり、二次論理回路データＬＣからネットリストデータＮＬを生成するツールである。ネットリストデータＮＬは、前記設計対象回路における端子間の接続情報のデータである。前記論理合成ツールは、当該論理合成ツール用に生成されたシンクロナイザ・コンポーネントＳＣを利用しつつネットリストデータＮＬを生成する処理を実行する。
【００３８】
前記論理合成工程において、満足すべき制約条件であるチップ面積、遅延時間および消費電力などが前記論理合成ツールに設定される。前記論理合成ツールは、設定された前記制約条件を満たすようにネットリストデータＮＬを生成する処理を進める。
【００３９】
＜工程Ｓ１０６＞
二次論理回路データＬＣおよびネットリストデータＮＬが得られると、それらのデータを前記レイアウトツールに適用するレイアウト工程が行われる。前記レイアウトツールは、二次論理回路データＬＣおよびネットリストデータＮＬから前記設計対象回路のレイアウトデータＬＯを自動生成するツールである。レイアウトデータＬＯは、回路の具体的な配置情報のデータである。
【００４０】
前記レイアウト工程において、満足すべき制約条件であるタイミングの条件などが前記レイアウトツールに設定される。前記レイアウトツールは、設定された前記制約条件を満たすようにレイアウトデータＬＯを生成する処理を進める。前記レイアウトツールは、当該レイアウト御ツール用に生成されたシンクロナイザ・コンポーネントＳＣを利用しつつレイアウトデータＬＯを生成する処理を実行する。
【００４１】
＜工程Ｓ１０７＞
さらに、レイアウトデータＬＯが表す回路配置の適否が判定され、その判定結果に応じて、前記論理合成ツールおよび前記レイアウトツールの設定条件の修正要否と、論理回路データＬＣ０の修正要否とがさらに判定される。
【００４２】
前記論理合成ツールの設定条件、前記レイアウトツールの設定条件または論理回路データＬＣ０の修正が必要な場合、修正が必要な工程以降の工程が再び行われる。
【００４３】
＜工程Ｓ１０８＞
レイアウトデータＬＯが表す回路配置が適切であると判定されると、二次論理回路データＬＣおよびネットリストデータＮＬを前記回路検証ツールに適用する工程が行われる。この工程Ｓ１０８は、工程Ｓ１０３〜Ｓ１０６までの設計により得られる回路の機能を検証する工程である。
【００４４】
前記回路検証ツールは、二次論理回路データＬＣおよびネットリストデータＮＬから前記設計対象回路のモデルを生成するとともに、そのモデルにテスト信号データを適用するツールである。前記回路検証ツールは、前記テスト信号データが入力された前記モデルの処理結果を、前記設計対象回路の動作結果として出力する。
【００４５】
前記回路検証ツールは、当該回路検証ツール用に生成されたシンクロナイザ・コンポーネントＳＣを利用しつつ前記モデルを生成する処理を実行する。
【００４６】
＜工程Ｓ１０９＞
さらに、回路検証ツールの処理結果の適否が判定され、その判定結果に応じて、前記回路検証ツールおよび前記論理合成ツールなどの設定条件の修正要否と、論理回路データＬＣ０の修正要否とがさらに判定される。
【００４７】
前記回路検証ツールの設定条件、前記論理合成ツールの設定条件、前記論理合成ツールの設定条件または論理回路データＬＣ０の修正が必要な場合、修正が必要な工程以降の工程が再び行われる。
【００４８】
以上により、回路設計における論理合成、レイアウトおよび回路検証に関する工程が終了する。
【００４９】
本実施形態によれば、前記論理合成工程、前記レイアウト工程および前記回路検証工程において、動作検証済みのシンクロナイザ・コンポーネントＳＣへのマッピングが成された二次論理回路データＬＣが用いられる。
【００５０】
従って、従来の設計方法では非常に発見が難しい不具合が生じやすい前記シンクロナイザ回路の前記ＣＤＣの部分に関し、ネットリストデータＮＬおよびレイアウトデータＬＯにおける不具合が生じない。その結果、これまで多大な手間および時間を要していた前記ＣＤＣの部分の検証のための負荷を軽減することができ、設計工程を大幅に効率化できる。
【００５１】
また、前記シンクロナイザ回路は、通常、不具合発生防止のために比較的狭い範囲に集中して配置されることが多い。そのため、シンクロナイザ・コンポーネントＳＣの定義内容が回路設計の拘束条件となっても、回路設計の自由度が従来に比べて大きく制限されることはない。また、シンクロナイザ・コンポーネントＳＣが、デュアル・ランク・フリップフロップ型のシンクロナイザ回路のコンポーネントであれば、汎用性が高い。
【００５２】
なお、本発明に係る回路設計方法および回路設計ツール用セル・ライブラリのコンポーネントは、各請求項に記載された発明の範囲において、以上に示された実施形態及び応用例を自由に組み合わせること、或いは実施形態及び応用例を適宜、変形する又は一部を省略することによって構成されることも可能である。
【符号の説明】
【００５３】
ＬＣ      ：二次論理回路データ
ＬＣ０    ：論理回路データ
ＬＯ      ：レイアウトデータ
ＮＬ      ：ネットリストデータ
ＳＣ      ：シンクロナイザ・コンポーネント
ＳＤ      ：シンクロナイザ回路データ
【図１】
0006435892.tif 000002
【図２】
0006435892.tif 000003
【図３】
0006435892.tif 000004
【図４】
0006435892.tif 000005
【図５】
0006435892.tif 000006