(57)【要約】【課題】合成ツールによりレシプロカル量子論理（ＲＱＬ）回路設計を生成する方法を提供する。【解決手段】方法は、ＲＱＬ回路設計の動作および制約に関連するデータおよびコンポーネントライブラリを合成ツールに提供することを含む。方法は、データおよびコンポーネントライブラリに基づいて合成ツールによりフリップフロップデバイスプレースホルダと、フリップフロップデバイス・プレースホルダの入力および出力のうちの少なくとも１つに結合された回路システムとを含むＲＱＬネットリスト回路を生成することを含む。方法は、入力に基づいて合成ツールにより回路システムを、クロック信号の別個の個々の位相にそれぞれ関連する複数の回路サブシステムに分離することを含む。方法は、合成ツールによりＲＱＬネットリスト回路からフリップフロップデバイスプレースホルダを除去して、ＲＱＬネットリスト回路からＲＱＬ回路設計を生成することを含む。【選択図】  図３
2018160261.tif 000002
【特許請求の範囲】
【請求項１】
非一時的なコンピュータ可読媒体であって、該コンピュータ可読媒体は、該コンピュータ可読媒体上に格納されたプログラムを有し、該コンピュータ可読媒体は、合成ツールにレシプロカル量子論理（ＲＱＬ）回路設計を生成する方法を行わせるプログラムを実行するように構成され、前記方法が、
ＲＱＬ回路設計の動作および制約に関連するデータ、コンポーネント・ライブラリに格納されたコンポーネント・データ、および位相クロック信号に基づいてＲＱＬネットリスト回路を生成するステップと、
前記合成ツールにより前記ＲＱＬネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、前記ＲＱＬネットリスト回路からＲＱＬ回路設計を生成するステップと
を含む、媒体。
【請求項２】
前記合成ツールが識別するためにユーザによって入力された入力に基づいて前記合成ツールにより前記ＲＱＬネットリスト回路の回路システムを別個のクロック信号の位相にそれぞれ関連する複数の回路サブシステムに分離するステップと、
前記ＲＱＬネットリスト回路内の前記フリップフロップ・デバイス・プレースホルダを、前記クロック信号の各別個の位相にそれぞれ対応する別個のクロック信号によって制御される複数のシーケンシャル・フリップフロップ・デバイスに置き換えるステップをさらに含む、請求項１に記載の媒体。
【請求項３】
前記回路システムを分離するステップは、前記合成ツールにより前記ＲＱＬネットリスト回路上でレジスタ・リバランス動作を実行して、前記回路システムを前記複数のシーケンシャル・フリップフロップ・デバイスの別個の１つに関連する複数の回路サブシステムに分離して、複数のシーケンシャル・フリップフロップの各々が複数の回路サブシステムの個々の対を相互接続するようにすることを含む、請求項２に記載の媒体。
【請求項４】
前記フリップフロップ・デバイス・プレースホルダを除去することは、
複数のシーケンシャル・フリップフロップの各々を除去して、前記複数の回路サブシステムの各個々の対の相互接続を提供すること、
入力によりクロック信号の各別個の位相を複数の回路サブシステムの個々の１つに関連付けて、クロック信号の各別個の個々の位相で複数の回路サブシステムのシーケンシャルトリガを提供すること
を含む、請求項３に記載の媒体。
【請求項５】
前記複数の回路サブシステムの各々に関連するクロックの位相を評価するステップと、
複数のシーケンシャル・フリップフロップの除去に応答して非連続的なクロックの位相を有する複数の回路サブシステムの一対の導電性結合をもたらす前記複数の回路サブシステムの実質的に空いている回路サブシステムに前記入力により少なくとも１つのジョセフソン伝送線路（ＪＴＬ）を追加するステップと
をさらに含む、請求項３に記載の媒体。
【請求項６】
前記回路システムを分離するステップは、前記合成ツールにより前記ＲＱＬネットリスト回路上でレジスタ・リバランス動作を実行して、前記回路システムを前記クロック信号の別個の個々の位相にそれぞれ関連付けられた前記複数の回路サブシステムに分離することを含む、請求項２に記載の媒体。
【請求項７】
入力を提供することは、前記フリップフロップ・デバイス・プレースホルダを、前記複数の回路サブシステムの個々の１つに関連し、かつクロック信号の各別個の個々の位相にそれぞれ対応する別個のクロック信号によって制御される複数のシーケンシャル・フリップフロップ・デバイスで置き換えることを含む、請求項６に記載の媒体。
【請求項８】
前記複数の回路サブシステムの各々に関連するクロックの位相を評価するステップと、
前記入力により前記複数の回路サブシステムのうちの実質的に空いている回路サブシステムに少なくとも１つのジョセフソン伝送線路（ＪＴＬ）を追加して、非連続的なクロックの位相を有する前記複数の回路サブシステムの一対の導電性結合をもたらすステップとを含む、請求項２に記載の媒体。
【請求項９】
前記クロックの位相を評価することは、前記複数の回路サブシステムの各々の間の各導電性結合を評価することを含み、前記少なくとも１つのＪＴＬを追加することは、前記クロック信号の位相の各位相セグメントの差が１より大きいものについて複数の回路サブシステムの所与の導電的に結合された一対の間に１つのＪＴＬを加算することを含む、請求項８に記載の媒体。
【請求項１０】
前記クロック信号は、複数の回路サブシステムが第１の回路サブシステム、第２の回路サブシステム、第３の回路サブシステム、および第４の回路サブシステムを含むような、４つの位相を含む直交クロック信号である、請求項２に記載の媒体。
【請求項１１】
生成された前記ＲＱＬ回路設計に基づいて半導体回路の製造を制御するステップをさらに含む、請求項１に記載の媒体。
【請求項１２】
非一時的なコンピュータ可読媒体であって、該コンピュータ可読媒体は、該コンピュータ可読媒体上に格納されたプログラムを有し、該コンピュータ可読媒体は、合成ツールにレシプロカル量子論理（ＲＱＬ）回路設計を生成する方法を行わせるプログラムを実行するように構成され、前記方法が、
前記合成ツールによりＲＱＬ回路設計の動作および制約に関連するデータおよびコンポーネント・ライブラリに格納されたコンポーネント・データに基づいてフリップフロップ・デバイス・プレースホルダと、前記フリップフロップ・デバイス・プレースホルダの入力および出力のうちの少なくとも１つに結合された回路システムとを含むＲＱＬネットリスト回路を生成するステップと、
前記合成ツールが識別するためにユーザによって入力された入力に基づいて前記合成ツールにより前記ＲＱＬネットリスト回路上でレジスタ・リバランス動作を実行して、前記回路システムを別個のクロック信号の位相にそれぞれ関連する複数の回路サブシステムに分離するステップと、
前記合成ツールが識別するためにユーザによって入力された入力に基づいて前記合成ツールにより前記ＲＱＬネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、前記ＲＱＬネットリスト回路に基づいてＲＱＬ回路設計を生成するステップと
を含む、媒体。
【請求項１３】
前記複数の回路サブシステムが第１の回路サブシステム、第２の回路サブシステム、第３の回路サブシステム、および第４の回路サブシステムを含み、
入力を提供するステップは、前記フリップフロップ・デバイス・プレースホルダを、前記第１、第２、第３、および第４の回路サブシステムに結合され、かつ入力により直交クロック信号の各別個の位相に対応する別個のクロック信号によってそれぞれ制御される第１のフリップフロップ・デバイス、第２のフリップフロップ・デバイス、第３のフリップフロップ・デバイス、および第４のフリップフロップ・デバイスに置き換えることを含む、請求項１２に記載の媒体。
【請求項１４】
前記フリップフロップ・デバイス・プレースホルダを除去するステップは、
前記第１、第２、第３および第４のフリップフロップ・デバイスの各々を除去して、前記第１、第２、第３および第４の回路サブシステムの連続する対の相互接続を提供すること、
前記入力により前記直交クロック信号を前記複数の回路サブシステムの各々に関連付けて、前記第１、第２、第３、および第４の回路サブシステムのシーケンシャルトリガを提供すること
を含む、請求項１３に記載の媒体。
【請求項１５】
前記第１、第２、第３及び第４の回路サブシステムの各々に関連するクロックの位相を評価するステップと、
複数のシーケンシャル・フリップフロップの除去に応答して非連続的なクロックの位相を有する前記第１、第２、第３および第４の回路サブシステムの一対の導電性結合をもたらす前記第１、第２、第３および第４の回路サブシステムの実質的に空いている回路サブシステムに入力により少なくとも１つのジョセフソン伝送線路（ＪＴＬ）を追加するステップと
をさらに含む、請求項１３に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、量子および古典回路システムに関し、具体的には、レシプロカル量子論理（ＲＱＬ：Ｒｅｃｉｐｒｏｃａｌ  Ｑｕａｎｔｕｍ  Ｌｏｇｉｃ）回路合成に関する。
【背景技術】
【０００２】
回路合成は、回路コンポーネント、所望の動作、および制約に対応する入力を対話式またはバッチ式で提供することに基づいて回路を設計するためのソフトウェア実装ツールである。ＶＨＳＩＣハードウェア記述言語（ＶＨＤＬ）、ヴェリログ（Ｖｅｒｉｌｏｇ）、またはシステムシー（Ｓｙｓｔｅｍ  Ｃ）で典型的に記述された動作レジスタ転送レベル（ＲＴＬ：Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）コードに基づいて、回路合成を相補型金属酸化膜半導体（ＣＭＯＳ）回路設計に具体化することができる。超伝導回路システムへの応用がより普及するにつれて、回路合成の使用は、レシプロカル量子論理（ＲＱＬ）回路を含む超伝導回路設計をより迅速かつ効率的に最適化する方法とすることができる。ＣＭＯＳ回路では、コンポーネント・ビルディング・ブロックは、ＡＮＤゲート等の組み合わせ（即ち、出力は現在の入力のみに依存する）、またはフリップフロップ（ＦＦまたはレジスタとしても知られている）またはレベル・センシティブ型ラッチ等のシーケンシャル（即ち、出力は現在および前の入力に依存する）として分類される。シーケンシャル・デバイスは、メモリまたは状態を記憶する特性を有する。ＲＱＬでは、ジョセフソン伝送ライン（ＪＴＬ：Ｊｏｓｅｐｈｓｏｎ  ｔｒａｎｓｍｉｓｓｉｏｎ  ｌｉｎｅ）が技術的にシーケンシャルであるため、これらの厳密な組み合わせおよびシーケンシャルの分類は適用されないが、組み合わせであるところのバッファのように高頻度で使用される。ＦＦは、クロックに対してエッジ応答的であり、合成によってサポートされる同期設計手法にとって不可欠なものである。
【０００３】
エッジトリガ型フリップフロップ・デバイス等のＣＭＯＳ合成システムで典型的に必要とされるいくつかの回路デバイスは、ＲＱＬにおいて効率的に構築することができない。現在市販されているほとんどのＣＭＯＳ合成器では、コンポーネント・ライブラリにシーケンシャルＦＦ要素を含ませる必要がある。合成器の役割は、動作ＲＴＬコードを取得し、ＲＴＬコードをいくつかの製造プロセスの用のコンポーネント・ライブラリ内においてセルで構成されるネットリストに変換することである。追加の別個のツールは、合成プロセスの一部ではないが、全体的なフローで使用することができる。一般にシミュレータとして知られている別のツールを使用して、合成する前に機能上の正確性を検証することができる。合成後、他のツールを使用して、配置およびルーティングのステップを実行することができる。配置およびルーティングの間、ネットリストの変更を、様々な目的（例えば、静的タイミング解析ツールを使用してタイミング要件を満たす）のいずれかのために、ツールによって自動的または手動編集によって導入することができる。シミュレータは、最終的な検証ステップとして、配置およびルーティングまたはゲート・レベル・ネットリストとＲＴＬコードとの間の論理的等価性検査の後に生成された最終ゲート・レベル・ネットリスト上で再度動作する。設計されたものが実際に製造される前に、レイアウト対回路図（ＬＶＳ）、デザインルールチェック（ＤＲＣ）、電気的ルールチェック（ＥＲＣ）、および製造チェック（ＤＦＭ）のような他の物理的検証ステップを使用することもできる。
【発明の概要】
【０００４】
本発明の一実施形態は、合成ツールによりレシプロカル量子論理（ＲＱＬ）回路設計を生成する方法を含む。方法は、ＲＱＬ回路設計の動作および制約に関連するデータおよびコンポーネント・ライブラリを合成ツールに提供することを含む。方法は、合成ツールによりデータに基づいてフリップフロップ・デバイス・プレースホルダと、フリップフロップ・デバイス・プレースホルダの入力および出力のうちの少なくとも１つに結合された回路システムとを含むＲＱＬネットリスト回路を生成することも含む。方法は、合成ツールにより入力に基づいて回路システムをクロック信号の別個の個々の位相にそれぞれ関連する複数の回路サブシステムに分離することも含む。方法は、合成ツールにより入力に基づいてＲＱＬネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、ＲＱＬネットリスト回路からＲＱＬ回路設計を生成することをさらに含む。
【０００５】
本発明の別の実施形態は、合成ツールによりＲＱＬ回路設計を生成する方法を含む。方法は、ＲＱＬ回路設計の動作および制約に関連するデータおよびコンポーネント・ライブラリを合成ツールに提供することを含む。方法は、合成ツールによりデータに基づいてフリップフロップ・デバイス・プレースホルダと、フリップフロップ・デバイス・プレースホルダの入力および出力のうちの少なくとも１つに結合された回路システムとを含むＲＱＬネットリスト回路を生成することも含む。方法は、入力に基づいてフリップフロップ・デバイス・プレースホルダを、クロック信号の各別個の位相にそれぞれ対応する別個のクロック信号によって制御される複数のシーケンシャル・フリップフロップ・デバイスに置き換えることも含む。方法は、入力に基づいて回路システムを、複数のシーケンシャル・フリップフロップ・デバイスの別個の１つにそれぞれ関連する複数の回路サブシステムに分離して、複数のシーケンシャル・フリップフロップの各々が複数の回路サブシステムの個々の対を相互接続するようにすることを含む。方法は、入力に基づいて合成ツールによりＲＱＬネットリスト回路から複数のシーケンシャル・フリップフロップ・デバイスの各々を除去して、ＲＱＬネットリスト回路に基づいてＲＱＬ回路設計を生成することを含む。
【０００６】
本発明の別の実施形態は、合成ツールによりＲＱＬ回路設計を生成する方法を含む。方法は、ＲＱＬ回路設計の動作および制約に関連するデータおよびコンポーネント・ライブラリを合成ツールに提供することを含む。方法は、データに基づいて合成ツールによりフリップフロップ・デバイス・プレースホルダと、フリップフロップ・デバイス・プレースホルダの入力および出力のうちの少なくとも１つに結合された回路システムとを含むＲＱＬネットリスト回路を生成することも含む。方法は、合成ツールによりＲＱＬネットリスト回路上でレジスタ・リバランス動作を実行して、回路システムを、それぞれ直交クロック信号の別個の個々の位相に関連する第１の回路サブシステム、第２の回路サブシステム、第３の回路サブシステム、および第４の回路サブシステムに分割することも含む。方法は、入力に基づいて合成ツールによりＲＱＬネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、ＲＱＬネットリスト回路に基づいてＲＱＬ回路設計を生成することを更に含む。
【図面の簡単な説明】
【０００７】
【図１】回路合成システムの一例を示す図。
【図２】ＲＱＬネットリスト回路の一例を示す図。
【図３】ＲＱＬネットリスト回路の別の例を示す図。
【図４】ＲＱＬネットリスト回路の別の例を示す図。
【図５】ＲＱＬネットリスト回路の別の例を示す図。
【図６】ＲＱＬネットリスト回路の別の例を示す図。
【図７】合成ツールによりＲＱＬ回路設計を生成する方法の一例を示す図。
【図８】合成ツールによりＲＱＬ回路設計を生成する方法の別の例を示す図。
【図９】合成ツールによりＲＱＬ回路設計を生成するための方法の他の例を示す図。
【発明を実施するための形態】
【０００８】
本開示は、一般的に、量子および古典回路システムに関し、具体的には、レシプロカル量子論理（ＲＱＬ）回路合成に関する。回路合成システムは、所望のＲＱＬ回路設計に対応するようになど、機能的にシミュレートすることができるＲＱＬネットリスト回路を生成するように実施され得る合成ツール（例えば、相補型金属酸化膜半導体（ＣＭＯＳ）回路設計のために典型的に構成されるもの）を含むことができる。コンポーネント・ライブラリは、ユーザが所望のＲＱＬ回路設計に関連する動作データおよび制約データからＲＱＬネットリスト回路を生成するのを実施することができるように、合成ツールにアップロードされる。生成されたＲＱＬネットリスト回路は、少なくとも１つのフリップフロップ・デバイス・プレースホルダと、フリップフロップ・デバイス・プレースホルダの入力および出力の少なくとも１つに結合された回路システムとを含むことができる。ユーザは、合成ツールに提供された入力を介して、フリップフロップ・デバイス・プレースホルダの各々を、シーケンシャルに結合され、かつそれぞれ互いに対して位相が異なる（例えば、位相が９０°ずれた）別個のクロック信号によって制御される複数のフリップフロップ・デバイス（例えば、４つのフリップフロップ・デバイス）に置き換えることができる。次いで、ユーザは、回路システムを複数のフリップフロップ・デバイスにそれぞれ関連付けられた複数の回路サブシステムに分離して、各フリップフロップ・デバイスが１対の回路サブシステムを相互接続するようにすることができる。一例として、回路システムを回路サブシステムに分離することは、合成ツールによりレジスタのリバランシング動作を実行することに基づくことができる。
【０００９】
次いで、ユーザは、フリップフロップ・デバイスによって相互接続された回路サブシステム間の結合を提供するために、入力によりフリップフロップ・デバイスを除去することができる。クロック信号は、クロック信号の個々の位相に基づいて回路サブシステムのシーケンシャルトリガを提供するように、回路サブシステムに提供される。一例として、クロック信号は、４つの回路サブシステムをシーケンシャルにトリガするために直交クロック信号を提供することができるように、一対の直交クロック信号を含む。さらに、フリップフロップ・デバイスの除去に続いて、各回路サブシステムの位相情報を互いに分析して、クロック信号の位相に対する回路サブシステムのシーケンシャル結合を確実にすることができる。このように、シーケンシャルクロック信号の位相を有していないシーケンシャル結合された回路サブシステムに応答して、ユーザは、ジョセフソン伝送ライン（ＪＴＬ）を追加して、シーケンシャル結合された回路サブシステムを相互接続することができる。たとえば、多数のＪＴＬを１より大きな各位相セグメントの差に対して追加することができる。したがって、シーケンシャルに結合された回路サブシステムは、ＲＱＬネットリスト回路の適切な動作を提供するためにシーケンシャルに位相トリガされ得る。
【００１０】
図１は、回路合成システム１０の一例を示す。回路合成システム１０は、相補型金属酸化膜半導体（ＣＭＯＳ）回路、レシプロカル量子論理（ＲＱＬ）回路、またはその両方の組み合わせなどの回路を設計するために実施することができる。回路合成システム１０は、プロセッサ１１と、合成ツール１２と、メモリ１４とを含む。図１に示すように、回路合成システム１０は、シミュレータ１６を含むものとして示されているが、シミュレータ１６は、例として提供され、本明細書に記載されている回路合成に必要ではない。合成ツール１２は、例えば、ＣＭＯＳおよび／またはＲＱＬ回路を（例えば、プロセッサ１１を介して）設計するように典型的に構成された様々な市販されている合成ツールのいずれかとして構成することができる。一例として、合成ツール１２は、動作レジスタ転送レベル（ＲＴＬ）コード、ＶＨＳＩＣハードウェア記述言語（ＶＨＤＬ）コード、またはヴェリログ（Ｖｅｒｉｌｏｇ）コードに基づいて動作することができる。図１の例において、合成ツール１２は、様々なインタフェースのいずれかを介してなど、所望のＲＱＬ回路設計に関連する動作データおよび／または制約データに対応することができるユーザからの入力Ｂ／Ｃ＿ＤＴを受信する。例えば、入力Ｂ／Ｃ＿ＤＴは、所望のＲＱＬ回路設計に関連する所定の動作コードおよび／または動作制約を含むことができる。所望のＲＱＬ回路設計に関連する入力Ｂ／Ｃ＿ＤＴの動作制約データおよび動作コードは、一組の動作／制約１８としてメモリ１４に保存することができる。さらに、ユーザは、利用可能な回路ツールに対応するコンポーネント・ライブラリ（コンポーネント・ライブラリから所望のＲＱＬ回路を設計することができる）に対応する入力ＣＬ（例えば、結果として得られる所望のＲＱＬ回路を製作し得るユーザまたはＡＳＩＣ製造者から提供される「．ｌｉｂ」ファイル）を提供することができる。図１の例において、入力ＣＬに関連するコンポーネント・ライブラリは、コンポーネント・ライブラリ２０としてメモリ１４に保存される。
【００１１】
合成ツール１２は、動作／制約１８およびコンポーネント・ライブラリ２０を介して（例えば、プロセッサ１１により）ＲＱＬネットリスト回路２２を生成するように構成することができる。一例として、合成ツール１２は、メモリ１４に記憶され、メモリ１４から実行可能であるか、または別個のメモリに記憶され、別個のメモリから実行可能である。図１の例において、ＲＱＬネットリスト回路２２は、メモリ１４に記憶される。ＲＱＬネットリスト回路２２は、超伝導コンピューティングデバイスならびにＣＭＯＳ回路デバイス・プレースホルダを含み、本明細書に記載するように、ＲＱＬネットリスト回路２２が、コンポーネント・ライブラリ２０からの既存のＣＭＯＳ回路ツールおよび／またはＲＱＬ回路ツールに基づいてＣＭＯＳ回路設計を類似させるようにする。例えば、合成ツール１２は、動作／制約１８に基づいて精巧な機能を実施して、ＲＱＬネットリスト回路２２の初期機能コンセプト回路を提供することができ、かつコンポーネント・ライブラリ２０に基づいてコンパイルまたは最適化機能を実施して、ＲＱＬネットリスト回路２２を生成することができる。したがって、本明細書に記載するように、ユーザは、手作業とは対照的に、（例えば、特定用途向け集積回路（ＡＳＩＣ）を構築するために配置およびルーティング動作を実施する他のツールを介して）回路合成システム１０により最適化されるＲＱＬネットリスト回路２２に基づいてＲＱＬ回路を設計することができ、これは、労働集約型設計およびシミュレーションプロセスを実質的に緩和する。
【００１２】
一例として、いくつかのＣＭＯＳ回路デバイスは、合成ツール１２のコンポーネント・ライブラリ２０で通常利用可能なツールに基づくＲＱＬ回路設計において複製することができない。一例は、クロックトリガ型フリップフロップ（ＦＦ）回路デバイスである。合成ツール１２のような典型的な合成ツールのそのような制限は、ＣＭＯＳ回路の厳密な動作またはシーケンシャル動作とは対照的に、ＲＱＬ回路のシーケンシャル動作および組み合わせ動作の組み合わせに基づいて合成ツール１２を使用したＲＱＬ回路の設計を制限する可能性がある。したがって、合成ツール１２内のコンポーネント・ライブラリ２０において利用可能なコンポーネントを使用して、クロックトリガ型フリップフロップ回路デバイスと同等の能力を有するＲＱＬ回路を設計しシミュレートすることは困難または不可能である可能性がある。しかしながら、本明細書で説明するように、入力スクリプトＳＣＰＴの特定のシーケンスと、ＲＱＬ回路設計においてフリップフロップ・デバイス機能をエミュレートするコンポーネント・ライブラリ２０内のプレースホルダＦＦの追加とを提供することによって、ユーザは、ＣＭＯＳを最適化するための合成ツールを用いてＲＱＬ回路を合成し最適化することができる。本明細書で説明するように、フリップフロップ・デバイス・プレースホルダは、ＲＱＬにおけるレジスタを表現し、かつ回路システムをサブシステムに分離する目的で、回路システムにおけるプレースホルダとして実装されるフリップフロップまたは他のデバイスを記述する。したがって、「プレースホルダＦＦ」という用語は、プレースホルダとして実際のＦＦデバイスを実装することに限定されるものではなく、そのような目的のためのプレースホルダとしての役割を持つことができるコンポーネント・ライブラリ２０内の任意のタイプのデバイス（例えば、ＲＴＬで概念的に表されるような）とすることができる。入力スクリプトＳＣＰＴは、例えば、合成ツール１２により提供される初期の精巧なコンパイル機能に続いて提供することができる。一例として、入力スクリプトＳＣＰＴは、ＲＱＬネットリスト回路２２を編集するためのネットリスト・ファイル・エディット、動作／制約１８に対する変更、コンポーネント・ライブラリ２０に対する変更、またはＲＱＬネットリスト回路２２の構造を変更するための合成回路１２に対するコマンドのうちの少なくとも１つを含む。
【００１３】
一例として、合成ツール１２は、動作／制約１８に基づいてＲＱＬネットリスト回路２２の初期機能コンセプト回路を生成して、回路システムに結合されたＣＭＯＳフリップフロップ・デバイス・プレースホルダ（例えば、少なくともＣＭＯＳフリップフロップ・デバイス・プレースホルダの入力または出力のうちの１つ）を含むようにすることができるが、ＣＭＯＳフリップフロップ・デバイス・プレースホルダを合成ＲＱＬネットリスト回路２２にコンパイルすることができない。したがって、入力スクリプトＳＣＰＴは、ＲＱＬネットリスト回路２２内に回路システムに結合されＣＭＯＳフリップフロップ・デバイス・プレースホルダを置き換え、回路システムを複数の回路サブシステムに分離することを含む。例えば、ユーザは、入力スクリプトＳＣＰＴを提供して、フリップフロップ・デバイス・プレースホルダを、クロック信号の所与の個々の位相にそれぞれ関連付けられ、かつ複数の回路サブシステムの個々の１つに関連付けられた複数のシーケンシャル・フリップフロップ・デバイスに置き換えることができる。以前に説明したのと同様に、シーケンシャル・フリップフロップ・デバイスは、実際のフリップフロップ・デバイスに限定されることを意図するものではなく、様々な他のレジスタ・タイプ・デバイスのいずれかとして実施することができる。図１の例において、合成ツール１２は、回路システム全体にわたって許容可能なタイミング分布を提供するために、（例えば、グラフ理論に基づいて）回路システム全体にわたって複数のシーケンシャル・フリップフロップ・デバイスを分配するように構成することができるレジスタ・リバランス機能２４を含み、分配されたフリップフロップ・デバイスの間にそれぞれがクロック信号の別個の個々の位相に関連する複数の回路サブシステムを確立する。本明細書で説明するように、用語「レジスタ・リバランス機能」は、レジスタ（例えば、レジスタ・リバランス、バランス・レジスタ、最適化レジスタ、リタイムなど）に関する様々な等価なタイミング分配動作のいずれかを記述するために使用される。例えば、レジスタ・リバランス機能２４は、フリップフロップ・デバイス・プレースホルダに置き換えられたフリップフロップ・デバイスの各々を、回路サブシステムの別個の個々の１つに関連付けることができる。次いで、ユーザは、スクリプト入力ＳＣＰＴを介してフリップフロップ・デバイス（例えば、置換フリップフロップ・デバイス）を除去して、回路サブシステムの各々がクロック信号の個々の別個の位相で動作する状態で、回路サブシステム同士を結合させて、合成ＲＱＬネットリスト回路２２を提供することができる。さらに、ユーザは、入力スクリプトＳＣＰＴを介して追加のジョセフソン伝送ライン（ＪＴＬ）を提供して、ＲＱＬネットリスト回路２２の適切な位相シーケンシングのための連続する回路サブシステム間の位相タイミング遅延を提供することができる。
【００１４】
図２は、ＲＱＬネットリスト回路５０の一例を示す図である。ＲＱＬネットリスト回路５０は、図１の例におけるＲＱＬネットリスト回路２２の設計の初期段階に相当する。したがって、ＲＱＬネットリスト回路５０は、回路合成システム１０を介して設計および最適化が望まれるＲＱＬ回路に対応することができる。
【００１５】
ＲＱＬネットリスト回路５０は、フリップフロップ・デバイス５２および回路システム５４を含む。フリップフロップ・デバイス５２は、ＣＭＯＳクロックトリガ型フリップフロップ（例えば、Ｄフリップフロップ）に対応することができ、（例えば、合成ツール１２の精巧な機能を介して）初期ＲＱＬネットリスト回路５０に設けられ、かつフィードバックループ５６を介した入力および出力信号５８を介して出力において回路システム５４に結合される（例えば、合成ツール１２の精巧な機能によりＲＱＬネットリスト回路５０にも追加される）。フリップフロップ・デバイス５２はまた、クロック信号ＣＬＫを受信するクロック入力を含む。回路システム５４は、ＲＱＬ回路デバイス、ＣＭＯＳ回路デバイス（例えば、プレースホルダ）、またはＲＱＬ回路およびＣＭＯＳ回路デバイスの組み合わせを含む様々な回路デバイスおよび／または論理デバイスに対応することができる。例えば、回路システム５４は、ＣＭＯＳ回路コンポーネントをシミュレートするために、ＲＱＬ回路デバイスに関するシーケンシャル回路から組み合わせ回路への遷移を表すことができる。前述したように、ＲＱＬ回路は、ＣＭＯＳ回路によって提供されるような、厳密にシーケンシャルにまたは厳密に組み合わせることとは対照的に、より詳細には、ＣＭＯＳフリップフロップ・デバイスが動作するのとは対照的に、シーケンシャル信号動作と組み合わせ信号動作との組み合わせに基づいて動作する。したがって、フリップフロップ・デバイス５２は、合成ＲＱＬネットリスト回路２２において適切に機能することができない。したがって、ユーザは、入力スクリプトＳＣＰＴのシーケンスを提供して、最初にフリップフロップ・デバイス５２をプレースホルダとして追加することから開始して、ＲＱＬネットリスト回路２２におけるクロックトリガ型フリップフロップの機能を提供することができる。ＲＱＬネットリスト回路５０が単一のフリップフロップ・デバイス５２を含むように図２の例で示されているが、本明細書で説明する技術は、複数（例えば、数百または数千）のフリップフロップ・デバイスを含むことに適用可能であることが理解される。
【００１６】
図３は、ＲＱＬネットリスト回路１００の他の例を示す。ＲＱＬネットリスト回路１００は、図１の例におけるＲＱＬネットリスト回路２２を設計する段階に対応することができる。例えば、ＲＱＬネットリスト回路１００は、図２の例のＲＱＬネットリスト回路５０によって示される初期段階の直後の段階に対応することができる。
【００１７】
図３の例において、ユーザは、入力スクリプトＳＣＰＴを合成ツール１２に供給して、フリップフロップ・デバイス５２を、シーケンシャルに接続された第１のフリップフロップ・デバイス１０２、第２のフリップフロップ・デバイス１０４、第３のフリップフロップ・デバイス１０６、および第４のフリップフロップ・デバイス１０８として示されている複数のシーケンシャル・フリップフロップ・デバイスに置き換える。第１のフリップフロップ・デバイス１０２は、フィードバックループ５６を介して回路システム５４に結合され、かつ出力信号１１０を介して第２のフリップフロップ・デバイス１０４に結合される。第２のフリップフロップ・デバイス１０４は、出力信号１１２を介して第３のフリップフロップ・デバイス１０６に結合され、第３のフリップフロップ・デバイス１０６は、出力信号１１４を介して第４のフリップフロップ・デバイス１０８に結合され、第４のフリップフロップ・デバイス１０８は、出力信号５８を介して回路システム５４に結合される。
【００１８】
図３の例において、各フリップフロップ・デバイス１０２，１０４，１０６、および１０８は、個々のクロック信号ＣＬＫを受信するクロック入力を含むが、クロック入力は位相がそれぞれ９０°ずれている。したがって、第１のフリップフロップ・デバイス１０２はクロック信号ＣＬＫを受信し、第２のフリップフロップ・デバイス１０４はクロック信号ＣＬＫ＋９０°を受信し、第３のフリップフロップ・デバイス１０６はクロック信号ＣＬＫ＋１８０°を受信し、フリップフロップ・デバイス１０８はクロック信号ＣＬＫ＋２７０°を受信する。例えば、入力スクリプトＳＣＰＴは、最初に、フリップフロップ・デバイス５２を、それぞれ共通のクロック信号ＣＬＫが提供される個々のフリップフロップ・デバイス１０２，１０４，１０６，および１０８に置き換え、続いて、（例えば、「カラーリング（ｃｏｌｏｒｉｎｇ）」手順に基づいて）クロック信号ＣＬＫの位相を連続するフリップフロップ・デバイス１０２，１０４，１０６，および１０８に対して個々の９０°位相外れクロック信号に変換する。したがって、プレースホルダ・フリップフロップ・デバイス５２をフリップフロップ・デバイス１０２，１０４，１０６および１０８に置き換える際に、ユーザは、クロック信号ＣＬＫの別個の個々の位相をフリップフロップ・デバイス１０２，１０４，１０６および１０８の各個々の１つに関連付けることができる。フリップフロップ・デバイス１０２，１０４，１０６，１０８はフリップフロップとして説明されているが、フリップフロップ・デバイス１０２，１０４，１０６，１０８は、ラッチ（例えば、Ｄラッチ）に対応することができることが理解される。
【００１９】
図４は、ＲＱＬネットリスト回路１５０のさらに別の例を示す。ＲＱＬネットリスト回路１５０は、合成ツール１２を使用する図１の例におけるＲＱＬネットリスト回路２２を設計する段階に対応することができる。例えば、ＲＱＬネットリスト回路１５０は、図３の例におけるＲＱＬネットリスト回路１００によって示される段階の直後の段階に対応することができる。
【００２０】
図４の例において、ユーザは、レジスタ・リバランス機能２４を実行して、回路システム５４を、回路システム５４に集合的に対応する第１の回路サブシステム１５２、第２の回路サブシステム１５４、第３の回路サブシステム１５６、および第４の回路サブシステム１５８として示されている複数の回路サブシステムに分離する。第１の回路サブシステム１５２は、第１のフリップフロップ・デバイス１０２と第２のフリップフロップ・デバイス１０４とを相互接続し、第２の回路サブシステム１５４は、第２のフリップフロップ・デバイス１０４と第３のフリップフロップ・デバイス１０６とを相互接続する。同様に、第３の回路サブシステム１５６は、第３のフリップフロップ・デバイス１０６と第４のフリップフロップ・デバイス１０８とを相互接続し、第４の回路サブシステム１５８は、第４のフリップフロップ・デバイス１０８と第１のフリップフロップ・デバイス１０２とをフィードバックループ５６を介して相互接続する。
【００２１】
本明細書でより詳細に説明するように、回路サブシステム１５２，１５４，１５６，および１５８は、（例えば、グラフ理論に基づいて）レジスタ・リバランス機能２４に基づいて分配される。一例として、レジスタ・リバランス機能２４は、回路サブシステム１５２，１５４，１５６，１５８を生成する際に、回路システム５４をほぼ等しいシーケンシャル部分に分割することができる。したがって、レジスタ・リバランス機能２４は、各回路サブシステム１５２，１５４，１５６，および１５８がクロック信号ＣＬＫの位相の個々の１つに関連するように、回路サブシステム１５２，１５４，１５６，１５８をフリップフロップ・デバイス１０２，１０４，１０６，および１０８の間に分配することができる。その結果、フリップフロップ・デバイス１０２，１０４，１０６，１０８は、クロック信号ＣＬＫの１／４サイクルに対応する位相境界に対応することができる。
【００２２】
図４の例において、フリップフロップ・デバイス１０２，１０４，１０６，および１０８は、回路サブシステム１５２，１５４，１５６，および１５８の個々の１つによってそれぞれ分離されているものとして示されている。しかしながら、レジスタ・リバランス機能２４に応答して、ＲＱＬネットリスト回路１５０は、クロック信号ＣＬＫの別個の位相（例えば、ＣＬＫ、ＣＬＫ＋９０°、ＣＬＫ＋１８０°、ＣＬＫ＋２７０°）に関連する追加のフリップフロップ・デバイスおよび／または回路サブシステムを含み得る。さらに、レジスタ・リバランス機能２４は、クロック信号ＣＬＫの別個の位相のうちの所与の１つにそれぞれ関連付けられ、かつ先行するフリップフロップ・デバイス、または進行中のフリップフロップ・デバイスに関してマージまたは分割することができる複数の回路サブシステムを作成することができる。
【００２３】
図５は、ＲＱＬネットリスト回路２００の一例を示す図である。ＲＱＬネットリスト回路２００は、合成ツール１２を使用する図１の例におけるＲＱＬネットリスト回路２２を設計する段階に対応する。例えば、ＲＱＬネットリスト回路２００は、図４の例におけるＲＱＬネットリスト回路２００によって示される段階の直後の段階に対応することができる。
【００２４】
図５の例において、ユーザは、フリップフロップ・デバイス１０２，１０４，１０６，１０８を除去するために入力スクリプトＳＣＰＴを合成ツール１２に提供することができる。その結果、回路サブシステム１５２，１５４，１５６，１５８の各対は、互いに導電的に結合されている。ＲＱＬネットリスト回路２００における回路サブシステム１５２，１５４，１５６，および１５８の導電性結合は、ＪＴＬに基づき、回路サブシステム１５２，１５４，１５６，および１５８の１つから回路サブシステム１５２，１５４，１５６，および１５８の次の連続する１つにシーケンシャルに単一磁束量子（ＳＦＱ：ｓｉｎｇｌｅ  ｆｌｕｘ  ｑｕａｎｔｕｍ）パルスを伝搬するように構成される。図５の例において、第１の回路サブシステム１５２は、第１のＪＴＬ２０２を介して第２の回路サブシステム１５４に結合され、第２の回路サブシステム１５４は、第２のＪＴＬ２０４を介して第３の回路サブシステム１５６に結合され、第３の回路サブシステム１５６は、第３のＪＴＬ２０６を介して第４の回路サブシステム１５８に結合され、第４の回路サブシステム１５８は、フィードバックループ５６に対応する第４のＪＴＬ２０８を介して第１の回路サブシステム１５２に結合される。
【００２５】
また、クロック信号ＣＬＫは、各回路サブシステム１５２，１５４，１５６，１５８に供給される。図５の例において、第１の回路サブシステム１５２は第１の位相φ１を有するものとして示され、第２の回路サブシステム１５４は第２の位相φ２を有するものとして示され、第３の回路サブシステム１５６は第３の位相φ３を有するものとして示され、第４の回路サブシステム１５８は第４の位相φ４を有するものとして示される。位相φ１、φ２、φ３、およびφ４の各々は、約９０°だけ連続的に位相がずれている。例えば、クロック信号ＣＬＫの別個の位相φ１、φ２、φ３、およびφ４の関連付けは、回路サブシステム１５２，１５４，１５６，および１５８に対する位相φ１、φ２、φ３、およびφ４の個々の１つを決定するために入力スクリプトＳＣＰＴにより除去されたフリップフロップに関してＪＴＬ２０２，２０４，２０６，および２０８の各々に沿ったトレースアルゴリズムに基づく。
【００２６】
一例として、ＲＱＬネットリスト回路２００において、クロック信号ＣＬＫは、図３及び図４の例では、クロック信号ＣＬＫの４つの個々の位相を含む直交クロック信号（例えば、ＣＬＫ、ＣＬＫ＋９０°、ＣＬＫ＋１８０°、およびＣＬＫ＋２７０°）として構成することができる。例えば、直交クロック信号ＣＬＫは、互いに約９０°位相がずれた２つのＡＣ信号を含み、かつ各々が、回路サブシステム１５２，１５４，１５６，および１５８の１つおきに順方向極性接続および逆極性接続を介して誘導接続されている。したがって、クロック信号ＣＬＫは、クロック信号ＣＬＫの各４分の１周期で回路サブシステム１５２，１５４，１５６，および１５８の各々にシーケンシャル・タイミングパルスを提供するように構成される。したがって、ＲＱＬネットリスト回路２００は、所望のＲＱＬ回路設計に対応して回路システム５４に関してクロックトリガ型フリップフロップ・デバイスの能力を含むように設計され、かつ合成される。
【００２７】
図６は、ＲＱＬネットリスト回路２５０の他の例を示す。ＲＱＬネットリスト回路２５０は、ＲＱＬネットリスト回路１５０に関連する連続的な位相セグメントのタイミングの問題を補正するように、図４の例におけるＲＱＬネットリスト回路１５０にほぼ対応することができる。図６の例では、ＲＱＬネットリスト回路２５０は、回路サブシステム１５２，１５４，および１５６、ならびにフリップフロップ・デバイス１０４および１０６のみを示している。しかしながら、ＲＱＬネットリスト回路２５０は、ＲＱＬネットリスト回路１５０の一部として示され、残りの部分（すなわち、回路サブシステム１５０およびフリップフロップ・デバイス１０２および１０８）は、簡潔かつ明瞭にするために省略されていることを理解されたい。
【００２８】
前に説明したように、回路サブシステム１５２，１５４，１５６，および１５８は、レジスタ・リバランス機能２４に基づいて（例えば、グラフ理論に基づいて）分配させることができる。しかしながら、回路システム５４の分割は、回路サブシステム１５２，１５４，１５６，および１５８のうちの１つまたは複数が実質的に空である（例えば、回路要素がない）結果となるなど、不均一となり得るので、クロック信号の非連続的な位相φ１、φ２、φ３、φ４を有する回路サブシステム１５２，１５４，１５６，１５８のうちの２つは、フリップフロップ・デバイス１０２，１０４，１０６，１０８の除去後に導電的に結合することができる。したがって、回路サブシステム１５２，１５４，１５６，および１５８の一対間の結合は、連続していなくてもよく、回路サブシステム１５２，１５４，１５６，および１５８の位相トリガは、回路サブシステム１５２，１５４，１５６および１５８の潜在的な非連続的な結合に基づいて位相φ１、φ２、φ３、およびφ４の適切なシーケンスで生じなくてもよい。換言すれば、回路サブシステム１５２，１５４，１５６，および１５８の所与の１つに関連し、かつ位相φ１、φ２、φ３、およびφ４の個々の１つに関連づけられた回路デバイスは、回路サブシステム１５２，１５４，１５６，および１５８の非連続的な他の１つ、したがって、位相φ１、φ２、φ３、φ４の非連続的な個々の１つに直接的に結合することができない。したがって、ユーザは、１つまたは複数の追加のＪＴＬを所与の空の１つまたは複数の回路サブシステム１５２，１５４，１５６および１５８に追加して、十分な付加的な遅延を提供して、適切な個々の位相φ１、φ２、φ３、およびφ４を用いてクロック信号ＣＬＫによってトリガされることになっている別個の非連続的な回路サブシステム１５２，１５４，１５６，および１５８において導電的に結合された回路デバイス間の関連性を提供することができる。
【００２９】
図６の例において、フリップフロップ・デバイス１０２，１０４，１０６，および１０８を除去する前に、回路サブシステム１５４は、回路コンポーネントを全く含まないか、または非常に僅かな回路コンポーネントを含んでいるなど、実質的に空であることが明らかとなる可能性があり、回路サブシステム１５４の入力１１２および回路サブシステム１５４の出力１１４（フリップフロップ・デバイス１０６からの出力として示されている）は導電的に結合されたものとして提供される。例えば、ユーザは、レジスタ・リバランス機能２４を実施した後、回路サブシステム１５４が実質的に空であると判断することができる。したがって、フリップフロップ・デバイス１０２，１０４，１０６，１０８、特にフリップフロップ・デバイス１０４および１０６の除去により、結果的に回路サブシステム１５２および１５６の導電的な結合が得られる。しかしながら、回路サブシステム１５２および１５６は、非連続的な位相φ１およびφ３を有するので、回路サブシステム１５２および１５６がクロックの位相φ１及びφ３に応答してトリガするタイミングは、タイミングに関して回路システム５４の誤った動作をもたらすこととなる。
【００３０】
実質的に空の回路サブシステム（例えば、図６の例における回路サブシステム１５４）に起因するタイミング問題の判定に応答して、ユーザは、入力スクリプトＳＣＰＴを介して回路サブシステム１５４に追加のＪＴＬ２５２を追加して、フリップフロップ・デバイス１０４および１０６を相互接続する。したがって、追加のＪＴＬ２５２は、付加的な位相遅延を提供して、適切な個々の位相φ１およびφ３を用いてクロック信号ＣＬＫによってトリガされることになっている非連続的な回路サブシステム１５２および１５６間の関連性を提供することができる。図６の例において、位相φ１を有する第１の回路サブシステム１５２と位相φ３を有する第３の回路サブシステム１５６との間の導電性結合は、位相セグメントの差が１より大きいこと（例えば、この例では、位相セグメントの差が２）に基づく非連続的な導電性結合である。したがって、ユーザは、第１および第３の回路サブシステム１５２および１５６の間の導電性結合において単一の追加のＪＴＬ２５２を追加して、第１および第３の回路サブシステム１５２および１５６の間の導電性結合における付加的な１つの位相セグメント遅延を提供することができる。したがって、フリップフロップ・デバイス１０２，１０４，１０６，および１０８、特にフリップフロップ・デバイス１０４および１０６を除去すると、ＪＴＬ２５２は、（例えば、クロック信号ＣＬＫの位相φ２によってトリガされるように）位相φ１とφ３との間に十分な１つの位相セグメント遅延を与えて、クロック信号ＣＬＫの個々の位相φ１およびφ３での回路サブシステム１５２および１５６の適切なトリガを提供することができる。
【００３１】
図６は、回路サブシステム１５４がＪＴＬ２５２が追加される実質的に空の回路サブシステムであることを示しているが、本明細書に記載の方法は、他の回路サブシステム１５２，１５６，または１５８のいずれかに適用可能であり、かつ同様に２以上の回路サブシステムに適用可能である。一例として、ユーザは、実質的に空の回路サブシステムである回路サブシステム１５２，１５４，１５６および１５８のいずれかに追加の１つのＪＴＬ２５２を追加して、追加のＪＴＬ２５２が個々の位相φ１、φ２、φ３、φ４における回路サブシステム１５２，１５４，１５６，および１５８の対応するトリガに対する十分な遅延を提供する。例えば、ユーザは、回路サブシステム１５２，１５４，１５６，および１５８間の導電性結合に沿って前後にトレースして、回路サブシステム１５２，１５４，１５６，および１５８に関連する個々の位相φ１、φ２、φ３、およびφ４に基づいて位相セグメントの差を決定することができる。したがって、非連続的な位相φ１、φ２、φ３、およびφ４を有する各導電性結合済みの回路サブシステム１５２，１５４，１５６，および１５８の間に１つまたは複数のＪＴＬ２５２を追加することによって、回路サブシステム１５２，１５４，１５６，および１５８は、クロック信号ＣＬＫによって適切にシーケンシャルにトリガされて、シミュレータ１６による正確なシミュレーションをもたらし、かつ結果として得られるＲＱＬ回路設計の適切な動作を提供することができる。
【００３２】
図２〜図６の例は、クロックトリガ型フリップフロップ・デバイスの能力を含むことができるＲＱＬ回路を合成するために、ユーザが合成ツール１２に提供することができる一連の入力スクリプトＳＣＰＴを提供する。方法の段階は、図２〜図６の例によって順次示されるが、入力スクリプトＳＣＰＴおよびＲＱＬ回路の設計段階は、図２〜図６の例によって示される段階の順序に限定されないことが理解されるべきである。例えば、前述の代わりに、プレースホルダ・フリップフロップ・デバイス５２は、（例えば、レジスタ・リバランス機能２４を介して）回路システム５４の分離に続いて、複数のフリップフロップ・デバイス１０２，１０４，１０６，および１０８によって置き換えることができる。同様に、追加のＪＴＬ２５２は、フリップフロップ・デバイス１０２，１０４，１０６，および１０８を除去する前に、回路サブシステム１５２，１５４，１５６，１５８の間の導電性結合に追加することができる。したがって、ＲＱＬ回路を設計および合成するための方法は、様々な方法で実施することができる。
【００３３】
上記の構造的及び機能的特徴を考慮して、本発明の様々な態様による方法は、図７〜図９を参照することにより、より良く理解されるであろう。説明の簡略化のために、図７〜図９の方法は、連続して実行されるものとして示され説明されているが、本発明は説明された順番に制限されず、本発明によれば、いくつかの態様が、本明細書に示され記載されている態様とは別の態様で異なる順序で、および／または並行して実施されてもよい。さらに、本発明の一態様による方法を実施するために示された特徴の全てが必要とされるわけではない。
【００３４】
図７は、合成ツール（例えば、合成ツール１２）によりＲＱＬ回路設計（例えば、ＲＱＬ回路２５０）を生成する方法３００の一例を示す。３０２において、ＲＱＬ回路設計の動作および制約（例えば、動作／制約１８）に関連するデータおよびコンポーネント・ライブラリ（例えば、コンポーネント・ライブラリ２０）が合成ツールに提供される。３０４において、データおよびコンポーネント・ライブラリに基づいて合成ツールによりフリップフロップ・デバイス（例えば、フリップフロップ・デバイス５２）と、フリップフロップ・デバイスの入力および出力のうちの少なくとも１つに結合された回路システム（例えば、回路システム５４）とを含むＲＱＬネットリスト回路（例えば、ＲＱＬネットリスト回路２２）が生成される。３０６において、入力（例えば、スクリプト入力ＳＣＰＴ）に基づいて合成ツールにより回路システムが、クロック信号（例えば、クロック信号ＣＬＫ）の別個の個々の位相にそれぞれ関連する複数の回路サブシステム（例えば、回路サブシステム１５２，１５４，１５６，および１５８）に分離される。３０８において、フリップフロップ・デバイスが、入力に基づいて合成ツールによりＲＱＬネットリスト回路から除去されて、ＲＱＬ回路設計に対応する合成ＲＱＬネットリスト回路（例えば、ＲＱＬネットリスト回路２２）が生成される。
【００３５】
図８は、合成ツール（例えば、合成ツール１２）によりＲＱＬ回路設計（例えば、ＲＱＬ回路２５０）を生成する方法３５０の別の例を示す。３５２において、ＲＱＬ回路設計（例えば、動作／制約１８）の動作および制約に関連するデータおよびコンポーネント・ライブラリ（例えば、コンポーネント・ライブラリ２０）が合成ツールに提供される。３５４において、データおよびコンポーネント・ライブラリに基づいて合成ツールによりフリップフロップ・デバイス（例えば、フリップフロップ・デバイス５２）と、（例えば、フィードバックループ５６および出力５８を介して）フリップフロップ・デバイスの入力および出力のうちの少なくとも１つに結合された回路システム（例えば、回路システム５４）とを含むＲＱＬネットリスト回路（例えば、ＲＱＬネットリスト回路２２）が生成される。３５６において、入力（例えば、入力スクリプトＳＣＰＴ）に基づいて、フリップフロップ・デバイスは、クロック信号の各別個の位相（例えば、位相φ１、φ２、φ３、およびφ４）にそれぞれ対応する別個のクロック信号（ＣＬＫ、ＣＬＫ＋９０°、ＣＬＫ＋１８０°、およびＣＬＫ＋２７０°）によって制御される複数のシーケンシャル・フリップフロップ・デバイス（例えば、フリップフロップ・デバイス１０２，１０４，１０６，および１０８）に置き換えられる。３５８において、回路システムは、複数のシーケンシャル・フリップフロップ・デバイスのうちの別個の１つにそれぞれ関連する複数の回路サブシステム（例えば、回路サブシステム１５２，１５４，１５６，および１５８）に分離され、入力に基づいて複数のシーケンシャル・フリップフロップの各々が複数の回路サブシステムの個々の対を相互接続するようにする。３６０において、複数のシーケンシャル・フリップフロップ・デバイスの各々が、入力に基づいて合成ツールによりＲＱＬネットリスト回路から除去され、ＲＱＬ回路設計に対応する合成ＲＱＬネットリスト回路（例えば、ＲＱＬネットリスト回路２２）が生成される。
【００３６】
図９は、合成ツール（例えば、合成ツール１２）によりＲＱＬ回路設計（例えば、ＲＱＬ回路２５０）を生成する方法４００のさらに別の例を示す。４０２において、ＲＱＬ回路設計（例えば、動作／制約１８）の動作および制約に関連するデータおよびコンポーネント・ライブラリ（例えば、コンポーネント・ライブラリ２０）が合成ツールに提供される。４０４において、データおよびコンポーネント・ライブラリに基づいて合成ツールによりフリップフロップ・デバイス（例えば、フリップフロップ・デバイス５２）と、（例えば、フィードバックループ５６および出力５８を介して）フリップフロップ・デバイスの入力および出力のうちの少なくとも１つに結合された回路システム（例えば、回路システム５４）とを含むＲＱＬネットリスト回路（例えば、ＲＱＬネットリスト回路２２）が生成される。一例として、フリップフロップ・デバイスは、それぞれが最終的に対応することができるような、クロック信号の別個の位相にそれぞれ対応する複数のフリップフロップ・デバイスに置き換えられ、リバランスされた回路サブシステムが登録される。４０６において、（例えば、レジスタ・リバランス機能２４を介した）レジスタ・リバランス動作が、合成ツールによりＲＱＬネットリスト回路上で実行され、回路システムが、直交クロック信号の別個の個々の位相（例えば、クロック信号ＣＬＫの位相φ１、φ２、φ３、φ４）に関連する第１の回路サブシステム（例えば、第１の回路サブシステム１５２）と、第２の回路サブシステム（例えば、第２の回路サブシステム１５４）と、第３の回路サブシステム（例えば、第３の回路サブシステム１５６）と、第４の回路サブシステム（例えば、第４の回路サブシステム１５８）とに分離される。一例として、レジスタ・リバランス動作は、複数のフリップフロップ・デバイスを含むＲＱＬネットリスト回路上で実行され、フリップフロップ・デバイスは、いくつかのフリップフロップ・デバイスのうちの１つとすることができるか、または複数のフリップフロップ・デバイスに対応できるようにする。４０８において、入力（例えば、入力スクリプトＳＣＰＴ）に基づいて合成ツールによりフリップフロップ・デバイス（例えば、フリップフロップ・デバイスのうちの１つ以上）がＲＱＬネットリスト回路から除去され、ＲＱＬ回路設計に対応する合成ＲＱＬネットリスト回路（例えば、ＲＱＬネットリスト回路２２）が生成される。
【００３７】
前述の構造的および機能的記述を考慮して、当業者は、本明細書で開示されるシステムおよび方法の一部が、方法、データ処理システム、または非一時的なコンピュータ可読媒体等のコンピュータプログラム製品として実施され得ることを認識するであろう。したがって、本明細書に開示されたアプローチの一部は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（例えば、非一時的な機械で可読媒体）、またはソフトウェアとハードウェアを組み合わせた実施形態の形態を取ることができる。さらに、本明細書に開示されるシステムおよび方法の一部は、媒体上にコンピュータ可読プログラムコードを有するコンピュータ使用可能記憶媒体上のコンピュータプログラム製品であってもよい。静的及び動的ストレージデバイス、ハードディスク、光ストレージデバイス、及び磁気ストレージデバイスを含むが、これらに限定されない任意の適切なコンピュータ可読媒体を利用することができる。
【００３８】
特定の実施形態はまた、方法、システム、およびコンピュータプログラム製品のブロック図を参照して本明細書に記載されている。例示のブロック、および図のブロックの組み合わせは、コンピュータ実行可能命令によって実施できることが理解されよう。これらのコンピュータ実行可能命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置（または装置および回路の組み合わせ）の１つまたは複数のプロセッサに提供されて、機械を生成して、１つまたは複数のプロセッサにより実行される命令が、１つまたは複数のブロックで指定された機能を実行するようにしてもよい。
【００３９】
コンピュータまたは他のプログラム可能なデータ処理装置に特定の機能するように指示するこれらのコンピュータ実行可能命令は、コンピュータ可読メモリにも格納され、コンピュータ可読メモリに格納された命令が、フローチャートの１つまたは複数のブロックで指定された機能を実行する命令を含む製造品となってもよい。コンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置にロードされて、コンピュータまたは他のプログラム可能な装置上で一連の動作ステップを実行して、コンピュータ実装プロセスを生成し、コンピュータまたは他のプログラム可能な装置で実行される命令が、フローチャートの１つまたは複数のブロックで指定された機能を実行するステップを提供する。
【００４０】
上記の説明は、本発明の実施例である。もちろん、本発明を説明する目的で構成要素または方法のあらゆる考えられる組み合わせを説明することは不可能であるが、当業者であれば、本発明の多くのさらなる組み合わせおよび置換が可能であることを認識するであろう。したがって、本発明は、添付の特許請求の範囲の思想および範囲内に入るそのような変更、修正および変形をすべて包含することを意図している。
以下に、上記実施形態から把握できる技術思想を付記として記載する。
［付記１］
実行時に、合成ツールによりレシプロカル量子論理（ＲＱＬ）回路設計を生成する方法を実行するように構成された命令を格納するように構成された非一時的なコンピュータ可読媒体であって、前記方法は、
ＲＱＬ回路設計の動作および制約に関連するデータおよびコンポーネント・ライブラリを前記合成ツールに提供するステップと、
前記データおよび前記コンポーネント・ライブラリに基づいて前記合成ツールによりフリップフロップ・デバイス・プレースホルダと、前記フリップフロップ・デバイス・プレースホルダの入力および出力のうちの少なくとも１つに結合された回路システムとを含むＲＱＬネットリスト回路を生成するステップと、
合成ツールにより前記ＲＱＬネットリスト回路上でレジスタ・リバランス動作を実行して、回路システムを、それぞれ直交クロック信号の別個の個々の位相に関連する第１の回路サブシステム、第２の回路サブシステム、第３の回路サブシステム、および第４の回路サブシステムに分割するステップと、
入力に基づいて前記合成ツールにより前記ＲＱＬネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、前記ＲＱＬネットリスト回路に基づいてＲＱＬ回路設計を生成するステップと
を含む、媒体。
［付記２］
入力を提供するステップは、前記フリップフロップ・デバイス・プレースホルダを、前記第１、第２、第３、および第４の回路サブシステムに結合され、かつ入力により直交クロック信号の各別個の位相に対応する別個のクロック信号によってそれぞれ制御される第１のフリップフロップ・デバイス、第２のフリップフロップ・デバイス、第３のフリップフロップ・デバイス、および第４のフリップフロップ・デバイスに置き換えることを含む、付記１に記載の媒体。
［付記３］
前記フリップフロップ・デバイス・プレースホルダを除去するステップは、
前記第１、第２、第３および第４のフリップフロップ・デバイスの各々を除去して、前記第１、第２、第３および第４の回路サブシステムの連続する対の相互接続を提供すること、
前記入力により前記直交クロック信号を前記複数の回路サブシステムの各々に関連付けて、前記第１、第２、第３、および第４の回路サブシステムのシーケンシャルトリガを提供すること
を含む、付記２に記載の媒体。
［付記４］
前記第１、第２、第３及び第４の回路サブシステムの各々に関連するクロックの位相を評価するステップと、
複数のシーケンシャル・フリップフロップの除去に応答して非連続的なクロックの位相を有する前記第１、第２、第３および第４の回路サブシステムの一対の導電性結合をもたらす前記第１、第２、第３および第４の回路サブシステムの実質的に空いている回路サブシステムに入力により少なくとも１つのジョセフソン伝送線路（ＪＴＬ）を追加するステップと
をさらに含む、付記２に記載の媒体。
【図１】
2018160261.tif 000003
【図２】
2018160261.tif 000004
【図３】
2018160261.tif 000005
【図４】
2018160261.tif 000006
【図５】
2018160261.tif 000007
【図６】
2018160261.tif 000008
【図７】
2018160261.tif 000009
【図８】
2018160261.tif 000010
【図９】
2018160261.tif 000011