【文献】
亀田義男 外2名,大規模SFQ論理回路設計のための自動配置配線手法とツール実装,電子情報通信学会2003年エレクトロニクスソサイエティ大会講演論文集2,社団法人電子情報通信学会,2003年 9月10日,p.46
【文献】
DOROJEVETS, M. et al.,TOWARDS 32-BIT ENERGY-EFFICIENT SUPERCONDUCTOR RQL PROCESSORS: THE CELL-LEVEL DESIGN AND ANALYSIS OF KEY PROCESSING AND ON-CHIP STORAGE UNITS,IEEE TRANSACTIONS ON APPLIED SUPERCONDUCTIVITY,IEEE,2015年 6月,VOL. 25, NO. 3
(58)【調査した分野】(Int.Cl.,DB名)
非一時的なコンピュータ可読媒体であって、該コンピュータ可読媒体は、該コンピュータ可読媒体上に格納されたプログラムを有し、該コンピュータ可読媒体は、合成ツールにレシプロカル量子論理(RQL)回路設計を生成する方法を行わせるプログラムを実行するように構成され、前記方法が、
RQL回路設計の動作および制約に関連するデータ、コンポーネント・ライブラリに格納されたコンポーネント・データ、および位相クロック信号に基づいてRQLネットリスト回路を生成するステップと、
前記合成ツールにより前記RQLネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、前記RQLネットリスト回路からRQL回路設計を生成するステップと
を含む、媒体。
前記合成ツールが識別するためにユーザによって入力された入力に基づいて前記合成ツールにより前記RQLネットリスト回路の回路システムを別個のクロック信号の位相にそれぞれ関連する複数の回路サブシステムに分離するステップと、
前記RQLネットリスト回路内の前記フリップフロップ・デバイス・プレースホルダを、前記クロック信号の各別個の位相にそれぞれ対応する別個のクロック信号によって制御される複数のシーケンシャル・フリップフロップ・デバイスに置き換えるステップをさらに含む、請求項1に記載の媒体。
前記回路システムを分離するステップは、前記合成ツールにより前記RQLネットリスト回路上でレジスタ・リバランス動作を実行して、前記回路システムを前記複数のシーケンシャル・フリップフロップ・デバイスの別個の1つに関連する複数の回路サブシステムに分離して、複数のシーケンシャル・フリップフロップの各々が複数の回路サブシステムの個々の対を相互接続するようにすることを含む、請求項2に記載の媒体。
前記回路システムを分離するステップは、前記合成ツールにより前記RQLネットリスト回路上でレジスタ・リバランス動作を実行して、前記回路システムを前記クロック信号の別個の個々の位相にそれぞれ関連付けられた前記複数の回路サブシステムに分離することを含む、請求項2に記載の媒体。
入力を提供することは、前記フリップフロップ・デバイス・プレースホルダを、前記複数の回路サブシステムの個々の1つに関連し、かつクロック信号の各別個の個々の位相にそれぞれ対応する別個のクロック信号によって制御される複数のシーケンシャル・フリップフロップ・デバイスで置き換えることを含む、請求項6に記載の媒体。
前記クロックの位相を評価することは、前記複数の回路サブシステムの各々の間の各導電性結合を評価することを含み、前記少なくとも1つのJTLを追加することは、前記クロック信号の位相の各位相セグメントの差が1より大きいものについて複数の回路サブシステムの所与の導電的に結合された一対の間に1つのJTLを加算することを含む、請求項8に記載の媒体。
前記クロック信号は、複数の回路サブシステムが第1の回路サブシステム、第2の回路サブシステム、第3の回路サブシステム、および第4の回路サブシステムを含むような、4つの位相を含む直交クロック信号である、請求項2に記載の媒体。
非一時的なコンピュータ可読媒体であって、該コンピュータ可読媒体は、該コンピュータ可読媒体上に格納されたプログラムを有し、該コンピュータ可読媒体は、合成ツールにレシプロカル量子論理(RQL)回路設計を生成する方法を行わせるプログラムを実行するように構成され、前記方法が、
前記合成ツールによりRQL回路設計の動作および制約に関連するデータおよびコンポーネント・ライブラリに格納されたコンポーネント・データに基づいてフリップフロップ・デバイス・プレースホルダと、前記フリップフロップ・デバイス・プレースホルダの入力および出力のうちの少なくとも1つに結合された回路システムとを含むRQLネットリスト回路を生成するステップと、
前記合成ツールが識別するためにユーザによって入力された入力に基づいて前記合成ツールにより前記RQLネットリスト回路上でレジスタ・リバランス動作を実行して、前記回路システムを別個のクロック信号の位相にそれぞれ関連する複数の回路サブシステムに分離するステップと、
前記合成ツールが識別するためにユーザによって入力された入力に基づいて前記合成ツールにより前記RQLネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、前記RQLネットリスト回路に基づいてRQL回路設計を生成するステップと
を含む、媒体。
【発明を実施するための形態】
【0008】
本開示は、一般的に、量子および古典回路システムに関し、具体的には、レシプロカル量子論理(RQL)回路合成に関する。回路合成システムは、所望のRQL回路設計に対応するようになど、機能的にシミュレートすることができるRQLネットリスト回路を生成するように実施され得る合成ツール(例えば、相補型金属酸化膜半導体(CMOS)回路設計のために典型的に構成されるもの)を含むことができる。コンポーネント・ライブラリは、ユーザが所望のRQL回路設計に関連する動作データおよび制約データからRQLネットリスト回路を生成するのを実施することができるように、合成ツールにアップロードされる。生成されたRQLネットリスト回路は、少なくとも1つのフリップフロップ・デバイス・プレースホルダと、フリップフロップ・デバイス・プレースホルダの入力および出力の少なくとも1つに結合された回路システムとを含むことができる。ユーザは、合成ツールに提供された入力を介して、フリップフロップ・デバイス・プレースホルダの各々を、シーケンシャルに結合され、かつそれぞれ互いに対して位相が異なる(例えば、位相が90°ずれた)別個のクロック信号によって制御される複数のフリップフロップ・デバイス(例えば、4つのフリップフロップ・デバイス)に置き換えることができる。次いで、ユーザは、回路システムを複数のフリップフロップ・デバイスにそれぞれ関連付けられた複数の回路サブシステムに分離して、各フリップフロップ・デバイスが1対の回路サブシステムを相互接続するようにすることができる。一例として、回路システムを回路サブシステムに分離することは、合成ツールによりレジスタのリバランシング動作を実行することに基づくことができる。
【0009】
次いで、ユーザは、フリップフロップ・デバイスによって相互接続された回路サブシステム間の結合を提供するために、入力によりフリップフロップ・デバイスを除去することができる。クロック信号は、クロック信号の個々の位相に基づいて回路サブシステムのシーケンシャルトリガを提供するように、回路サブシステムに提供される。一例として、クロック信号は、4つの回路サブシステムをシーケンシャルにトリガするために直交クロック信号を提供することができるように、一対の直交クロック信号を含む。さらに、フリップフロップ・デバイスの除去に続いて、各回路サブシステムの位相情報を互いに分析して、クロック信号の位相に対する回路サブシステムのシーケンシャル結合を確実にすることができる。このように、シーケンシャルクロック信号の位相を有していないシーケンシャル結合された回路サブシステムに応答して、ユーザは、ジョセフソン伝送ライン(JTL)を追加して、シーケンシャル結合された回路サブシステムを相互接続することができる。たとえば、多数のJTLを1より大きな各位相セグメントの差に対して追加することができる。したがって、シーケンシャルに結合された回路サブシステムは、RQLネットリスト回路の適切な動作を提供するためにシーケンシャルに位相トリガされ得る。
【0010】
図1は、回路合成システム10の一例を示す。回路合成システム10は、相補型金属酸化膜半導体(CMOS)回路、レシプロカル量子論理(RQL)回路、またはその両方の組み合わせなどの回路を設計するために実施することができる。回路合成システム10は、プロセッサ11と、合成ツール12と、メモリ14とを含む。
図1に示すように、回路合成システム10は、シミュレータ16を含むものとして示されているが、シミュレータ16は、例として提供され、本明細書に記載されている回路合成に必要ではない。合成ツール12は、例えば、CMOSおよび/またはRQL回路を(例えば、プロセッサ11を介して)設計するように典型的に構成された様々な市販されている合成ツールのいずれかとして構成することができる。一例として、合成ツール12は、動作レジスタ転送レベル(RTL)コード、VHSICハードウェア記述言語(VHDL)コード、またはヴェリログ(Verilog)コードに基づいて動作することができる。
図1の例において、合成ツール12は、様々なインタフェースのいずれかを介してなど、所望のRQL回路設計に関連する動作データおよび/または制約データに対応することができるユーザからの入力B/C_DTを受信する。例えば、入力B/C_DTは、所望のRQL回路設計に関連する所定の動作コードおよび/または動作制約を含むことができる。所望のRQL回路設計に関連する入力B/C_DTの動作制約データおよび動作コードは、一組の動作/制約18としてメモリ14に保存することができる。さらに、ユーザは、利用可能な回路ツールに対応するコンポーネント・ライブラリ(コンポーネント・ライブラリから所望のRQL回路を設計することができる)に対応する入力CL(例えば、結果として得られる所望のRQL回路を製作し得るユーザまたはASIC製造者から提供される「.lib」ファイル)を提供することができる。
図1の例において、入力CLに関連するコンポーネント・ライブラリは、コンポーネント・ライブラリ20としてメモリ14に保存される。
【0011】
合成ツール12は、動作/制約18およびコンポーネント・ライブラリ20を介して(例えば、プロセッサ11により)RQLネットリスト回路22を生成するように構成することができる。一例として、合成ツール12は、メモリ14に記憶され、メモリ14から実行可能であるか、または別個のメモリに記憶され、別個のメモリから実行可能である。
図1の例において、RQLネットリスト回路22は、メモリ14に記憶される。RQLネットリスト回路22は、超伝導コンピューティングデバイスならびにCMOS回路デバイス・プレースホルダを含み、本明細書に記載するように、RQLネットリスト回路22が、コンポーネント・ライブラリ20からの既存のCMOS回路ツールおよび/またはRQL回路ツールに基づいてCMOS回路設計を類似させるようにする。例えば、合成ツール12は、動作/制約18に基づいて精巧な機能を実施して、RQLネットリスト回路22の初期機能コンセプト回路を提供することができ、かつコンポーネント・ライブラリ20に基づいてコンパイルまたは最適化機能を実施して、RQLネットリスト回路22を生成することができる。したがって、本明細書に記載するように、ユーザは、手作業とは対照的に、(例えば、特定用途向け集積回路(ASIC)を構築するために配置およびルーティング動作を実施する他のツールを介して)回路合成システム10により最適化されるRQLネットリスト回路22に基づいてRQL回路を設計することができ、これは、労働集約型設計およびシミュレーションプロセスを実質的に緩和する。
【0012】
一例として、いくつかのCMOS回路デバイスは、合成ツール12のコンポーネント・ライブラリ20で通常利用可能なツールに基づくRQL回路設計において複製することができない。一例は、クロックトリガ型フリップフロップ(FF)回路デバイスである。合成ツール12のような典型的な合成ツールのそのような制限は、CMOS回路の厳密な動作またはシーケンシャル動作とは対照的に、RQL回路のシーケンシャル動作および組み合わせ動作の組み合わせに基づいて合成ツール12を使用したRQL回路の設計を制限する可能性がある。したがって、合成ツール12内のコンポーネント・ライブラリ20において利用可能なコンポーネントを使用して、クロックトリガ型フリップフロップ回路デバイスと同等の能力を有するRQL回路を設計しシミュレートすることは困難または不可能である可能性がある。しかしながら、本明細書で説明するように、入力スクリプトSCPTの特定のシーケンスと、RQL回路設計においてフリップフロップ・デバイス機能をエミュレートするコンポーネント・ライブラリ20内のプレースホルダFFの追加とを提供することによって、ユーザは、CMOSを最適化するための合成ツールを用いてRQL回路を合成し最適化することができる。本明細書で説明するように、フリップフロップ・デバイス・プレースホルダは、RQLにおけるレジスタを表現し、かつ回路システムをサブシステムに分離する目的で、回路システムにおけるプレースホルダとして実装されるフリップフロップまたは他のデバイスを記述する。したがって、「プレースホルダFF」という用語は、プレースホルダとして実際のFFデバイスを実装することに限定されるものではなく、そのような目的のためのプレースホルダとしての役割を持つことができるコンポーネント・ライブラリ20内の任意のタイプのデバイス(例えば、RTLで概念的に表されるような)とすることができる。入力スクリプトSCPTは、例えば、合成ツール12により提供される初期の精巧なコンパイル機能に続いて提供することができる。一例として、入力スクリプトSCPTは、RQLネットリスト回路22を編集するためのネットリスト・ファイル・エディット、動作/制約18に対する変更、コンポーネント・ライブラリ20に対する変更、またはRQLネットリスト回路22の構造を変更するための合成回路12に対するコマンドのうちの少なくとも1つを含む。
【0013】
一例として、合成ツール12は、動作/制約18に基づいてRQLネットリスト回路22の初期機能コンセプト回路を生成して、回路システムに結合されたCMOSフリップフロップ・デバイス・プレースホルダ(例えば、少なくともCMOSフリップフロップ・デバイス・プレースホルダの入力または出力のうちの1つ)を含むようにすることができるが、CMOSフリップフロップ・デバイス・プレースホルダを合成RQLネットリスト回路22にコンパイルすることができない。したがって、入力スクリプトSCPTは、RQLネットリスト回路22内に回路システムに結合されCMOSフリップフロップ・デバイス・プレースホルダを置き換え、回路システムを複数の回路サブシステムに分離することを含む。例えば、ユーザは、入力スクリプトSCPTを提供して、フリップフロップ・デバイス・プレースホルダを、クロック信号の所与の個々の位相にそれぞれ関連付けられ、かつ複数の回路サブシステムの個々の1つに関連付けられた複数のシーケンシャル・フリップフロップ・デバイスに置き換えることができる。以前に説明したのと同様に、シーケンシャル・フリップフロップ・デバイスは、実際のフリップフロップ・デバイスに限定されることを意図するものではなく、様々な他のレジスタ・タイプ・デバイスのいずれかとして実施することができる。
図1の例において、合成ツール12は、回路システム全体にわたって許容可能なタイミング分布を提供するために、(例えば、グラフ理論に基づいて)回路システム全体にわたって複数のシーケンシャル・フリップフロップ・デバイスを分配するように構成することができるレジスタ・リバランス機能24を含み、分配されたフリップフロップ・デバイスの間にそれぞれがクロック信号の別個の個々の位相に関連する複数の回路サブシステムを確立する。本明細書で説明するように、用語「レジスタ・リバランス機能」は、レジスタ(例えば、レジスタ・リバランス、バランス・レジスタ、最適化レジスタ、リタイムなど)に関する様々な等価なタイミング分配動作のいずれかを記述するために使用される。例えば、レジスタ・リバランス機能24は、フリップフロップ・デバイス・プレースホルダに置き換えられたフリップフロップ・デバイスの各々を、回路サブシステムの別個の個々の1つに関連付けることができる。次いで、ユーザは、スクリプト入力SCPTを介してフリップフロップ・デバイス(例えば、置換フリップフロップ・デバイス)を除去して、回路サブシステムの各々がクロック信号の個々の別個の位相で動作する状態で、回路サブシステム同士を結合させて、合成RQLネットリスト回路22を提供することができる。さらに、ユーザは、入力スクリプトSCPTを介して追加のジョセフソン伝送ライン(JTL)を提供して、RQLネットリスト回路22の適切な位相シーケンシングのための連続する回路サブシステム間の位相タイミング遅延を提供することができる。
【0014】
図2は、RQLネットリスト回路50の一例を示す図である。RQLネットリスト回路50は、
図1の例におけるRQLネットリスト回路22の設計の初期段階に相当する。したがって、RQLネットリスト回路50は、回路合成システム10を介して設計および最適化が望まれるRQL回路に対応することができる。
【0015】
RQLネットリスト回路50は、フリップフロップ・デバイス52および回路システム54を含む。フリップフロップ・デバイス52は、CMOSクロックトリガ型フリップフロップ(例えば、Dフリップフロップ)に対応することができ、(例えば、合成ツール12の精巧な機能を介して)初期RQLネットリスト回路50に設けられ、かつフィードバックループ56を介した入力および出力信号58を介して出力において回路システム54に結合される(例えば、合成ツール12の精巧な機能によりRQLネットリスト回路50にも追加される)。フリップフロップ・デバイス52はまた、クロック信号CLKを受信するクロック入力を含む。回路システム54は、RQL回路デバイス、CMOS回路デバイス(例えば、プレースホルダ)、またはRQL回路およびCMOS回路デバイスの組み合わせを含む様々な回路デバイスおよび/または論理デバイスに対応することができる。例えば、回路システム54は、CMOS回路コンポーネントをシミュレートするために、RQL回路デバイスに関するシーケンシャル回路から組み合わせ回路への遷移を表すことができる。前述したように、RQL回路は、CMOS回路によって提供されるような、厳密にシーケンシャルにまたは厳密に組み合わせることとは対照的に、より詳細には、CMOSフリップフロップ・デバイスが動作するのとは対照的に、シーケンシャル信号動作と組み合わせ信号動作との組み合わせに基づいて動作する。したがって、フリップフロップ・デバイス52は、合成RQLネットリスト回路22において適切に機能することができない。したがって、ユーザは、入力スクリプトSCPTのシーケンスを提供して、最初にフリップフロップ・デバイス52をプレースホルダとして追加することから開始して、RQLネットリスト回路22におけるクロックトリガ型フリップフロップの機能を提供することができる。RQLネットリスト回路50が単一のフリップフロップ・デバイス52を含むように
図2の例で示されているが、本明細書で説明する技術は、複数(例えば、数百または数千)のフリップフロップ・デバイスを含むことに適用可能であることが理解される。
【0016】
図3は、RQLネットリスト回路100の他の例を示す。RQLネットリスト回路100は、
図1の例におけるRQLネットリスト回路22を設計する段階に対応することができる。例えば、RQLネットリスト回路100は、
図2の例のRQLネットリスト回路50によって示される初期段階の直後の段階に対応することができる。
【0017】
図3の例において、ユーザは、入力スクリプトSCPTを合成ツール12に供給して、フリップフロップ・デバイス52を、シーケンシャルに接続された第1のフリップフロップ・デバイス102、第2のフリップフロップ・デバイス104、第3のフリップフロップ・デバイス106、および第4のフリップフロップ・デバイス108として示されている複数のシーケンシャル・フリップフロップ・デバイスに置き換える。第1のフリップフロップ・デバイス102は、フィードバックループ56を介して回路システム54に結合され、かつ出力信号110を介して第2のフリップフロップ・デバイス104に結合される。第2のフリップフロップ・デバイス104は、出力信号112を介して第3のフリップフロップ・デバイス106に結合され、第3のフリップフロップ・デバイス106は、出力信号114を介して第4のフリップフロップ・デバイス108に結合され、第4のフリップフロップ・デバイス108は、出力信号58を介して回路システム54に結合される。
【0018】
図3の例において、各フリップフロップ・デバイス102,104,106、および108は、個々のクロック信号CLKを受信するクロック入力を含むが、クロック入力は位相がそれぞれ90°ずれている。したがって、第1のフリップフロップ・デバイス102はクロック信号CLKを受信し、第2のフリップフロップ・デバイス104はクロック信号CLK+90°を受信し、第3のフリップフロップ・デバイス106はクロック信号CLK+180°を受信し、フリップフロップ・デバイス108はクロック信号CLK+270°を受信する。例えば、入力スクリプトSCPTは、最初に、フリップフロップ・デバイス52を、それぞれ共通のクロック信号CLKが提供される個々のフリップフロップ・デバイス102,104,106,および108に置き換え、続いて、(例えば、「カラーリング(coloring)」手順に基づいて)クロック信号CLKの位相を連続するフリップフロップ・デバイス102,104,106,および108に対して個々の90°位相外れクロック信号に変換する。したがって、プレースホルダ・フリップフロップ・デバイス52をフリップフロップ・デバイス102,104,106および108に置き換える際に、ユーザは、クロック信号CLKの別個の個々の位相をフリップフロップ・デバイス102,104,106および108の各個々の1つに関連付けることができる。フリップフロップ・デバイス102,104,106,108はフリップフロップとして説明されているが、フリップフロップ・デバイス102,104,106,108は、ラッチ(例えば、Dラッチ)に対応することができることが理解される。
【0019】
図4は、RQLネットリスト回路150のさらに別の例を示す。RQLネットリスト回路150は、合成ツール12を使用する
図1の例におけるRQLネットリスト回路22を設計する段階に対応することができる。例えば、RQLネットリスト回路150は、
図3の例におけるRQLネットリスト回路100によって示される段階の直後の段階に対応することができる。
【0020】
図4の例において、ユーザは、レジスタ・リバランス機能24を実行して、回路システム54を、回路システム54に集合的に対応する第1の回路サブシステム152、第2の回路サブシステム154、第3の回路サブシステム156、および第4の回路サブシステム158として示されている複数の回路サブシステムに分離する。第1の回路サブシステム152は、第1のフリップフロップ・デバイス102と第2のフリップフロップ・デバイス104とを相互接続し、第2の回路サブシステム154は、第2のフリップフロップ・デバイス104と第3のフリップフロップ・デバイス106とを相互接続する。同様に、第3の回路サブシステム156は、第3のフリップフロップ・デバイス106と第4のフリップフロップ・デバイス108とを相互接続し、第4の回路サブシステム158は、第4のフリップフロップ・デバイス108と第1のフリップフロップ・デバイス102とをフィードバックループ56を介して相互接続する。
【0021】
本明細書でより詳細に説明するように、回路サブシステム152,154,156,および158は、(例えば、グラフ理論に基づいて)レジスタ・リバランス機能24に基づいて分配される。一例として、レジスタ・リバランス機能24は、回路サブシステム152,154,156,158を生成する際に、回路システム54をほぼ等しいシーケンシャル部分に分割することができる。したがって、レジスタ・リバランス機能24は、各回路サブシステム152,154,156,および158がクロック信号CLKの位相の個々の1つに関連するように、回路サブシステム152,154,156,158をフリップフロップ・デバイス102,104,106,および108の間に分配することができる。その結果、フリップフロップ・デバイス102,104,106,108は、クロック信号CLKの1/4サイクルに対応する位相境界に対応することができる。
【0022】
図4の例において、フリップフロップ・デバイス102,104,106,および108は、回路サブシステム152,154,156,および158の個々の1つによってそれぞれ分離されているものとして示されている。しかしながら、レジスタ・リバランス機能24に応答して、RQLネットリスト回路150は、クロック信号CLKの別個の位相(例えば、CLK、CLK+90°、CLK+180°、CLK+270°)に関連する追加のフリップフロップ・デバイスおよび/または回路サブシステムを含み得る。さらに、レジスタ・リバランス機能24は、クロック信号CLKの別個の位相のうちの所与の1つにそれぞれ関連付けられ、かつ先行するフリップフロップ・デバイス、または進行中のフリップフロップ・デバイスに関してマージまたは分割することができる複数の回路サブシステムを作成することができる。
【0023】
図5は、RQLネットリスト回路200の一例を示す図である。RQLネットリスト回路200は、合成ツール12を使用する
図1の例におけるRQLネットリスト回路22を設計する段階に対応する。例えば、RQLネットリスト回路200は、
図4の例におけるRQLネットリスト回路200によって示される段階の直後の段階に対応することができる。
【0024】
図5の例において、ユーザは、フリップフロップ・デバイス102,104,106,108を除去するために入力スクリプトSCPTを合成ツール12に提供することができる。その結果、回路サブシステム152,154,156,158の各対は、互いに導電的に結合されている。RQLネットリスト回路200における回路サブシステム152,154,156,および158の導電性結合は、JTLに基づき、回路サブシステム152,154,156,および158の1つから回路サブシステム152,154,156,および158の次の連続する1つにシーケンシャルに単一磁束量子(SFQ:single flux quantum)パルスを伝搬するように構成される。
図5の例において、第1の回路サブシステム152は、第1のJTL202を介して第2の回路サブシステム154に結合され、第2の回路サブシステム154は、第2のJTL204を介して第3の回路サブシステム156に結合され、第3の回路サブシステム156は、第3のJTL206を介して第4の回路サブシステム158に結合され、第4の回路サブシステム158は、フィードバックループ56に対応する第4のJTL208を介して第1の回路サブシステム152に結合される。
【0025】
また、クロック信号CLKは、各回路サブシステム152,154,156,158に供給される。
図5の例において、第1の回路サブシステム152は第1の位相φ
1を有するものとして示され、第2の回路サブシステム154は第2の位相φ
2を有するものとして示され、第3の回路サブシステム156は第3の位相φ
3を有するものとして示され、第4の回路サブシステム158は第4の位相φ
4を有するものとして示される。位相φ
1、φ
2、φ
3、およびφ
4の各々は、約90°だけ連続的に位相がずれている。例えば、クロック信号CLKの別個の位相φ
1、φ
2、φ
3、およびφ
4の関連付けは、回路サブシステム152,154,156,および158に対する位相φ
1、φ
2、φ
3、およびφ
4の個々の1つを決定するために入力スクリプトSCPTにより除去されたフリップフロップに関してJTL202,204,206,および208の各々に沿ったトレースアルゴリズムに基づく。
【0026】
一例として、RQLネットリスト回路200において、クロック信号CLKは、
図3及び
図4の例では、クロック信号CLKの4つの個々の位相を含む直交クロック信号(例えば、CLK、CLK+90°、CLK+180°、およびCLK+270°)として構成することができる。例えば、直交クロック信号CLKは、互いに約90°位相がずれた2つのAC信号を含み、かつ各々が、回路サブシステム152,154,156,および158の1つおきに順方向極性接続および逆極性接続を介して誘導接続されている。したがって、クロック信号CLKは、クロック信号CLKの各4分の1周期で回路サブシステム152,154,156,および158の各々にシーケンシャル・タイミングパルスを提供するように構成される。したがって、RQLネットリスト回路200は、所望のRQL回路設計に対応して回路システム54に関してクロックトリガ型フリップフロップ・デバイスの能力を含むように設計され、かつ合成される。
【0027】
図6は、RQLネットリスト回路250の他の例を示す。RQLネットリスト回路250は、RQLネットリスト回路150に関連する連続的な位相セグメントのタイミングの問題を補正するように、
図4の例におけるRQLネットリスト回路150にほぼ対応することができる。
図6の例では、RQLネットリスト回路250は、回路サブシステム152,154,および156、ならびにフリップフロップ・デバイス104および106のみを示している。しかしながら、RQLネットリスト回路250は、RQLネットリスト回路150の一部として示され、残りの部分(すなわち、回路サブシステム150およびフリップフロップ・デバイス102および108)は、簡潔かつ明瞭にするために省略されていることを理解されたい。
【0028】
前に説明したように、回路サブシステム152,154,156,および158は、レジスタ・リバランス機能24に基づいて(例えば、グラフ理論に基づいて)分配させることができる。しかしながら、回路システム54の分割は、回路サブシステム152,154,156,および158のうちの1つまたは複数が実質的に空である(例えば、回路要素がない)結果となるなど、不均一となり得るので、クロック信号の非連続的な位相φ
1、φ
2、φ
3、φ
4を有する回路サブシステム152,154,156,158のうちの2つは、フリップフロップ・デバイス102,104,106,108の除去後に導電的に結合することができる。したがって、回路サブシステム152,154,156,および158の一対間の結合は、連続していなくてもよく、回路サブシステム152,154,156,および158の位相トリガは、回路サブシステム152,154,156および158の潜在的な非連続的な結合に基づいて位相φ
1、φ
2、φ
3、およびφ
4の適切なシーケンスで生じなくてもよい。換言すれば、回路サブシステム152,154,156,および158の所与の1つに関連し、かつ位相φ
1、φ
2、φ
3、およびφ
4の個々の1つに関連づけられた回路デバイスは、回路サブシステム152,154,156,および158の非連続的な他の1つ、したがって、位相φ
1、φ
2、φ
3、φ
4の非連続的な個々の1つに直接的に結合することができない。したがって、ユーザは、1つまたは複数の追加のJTLを所与の空の1つまたは複数の回路サブシステム152,154,156および158に追加して、十分な付加的な遅延を提供して、適切な個々の位相φ
1、φ
2、φ
3、およびφ
4を用いてクロック信号CLKによってトリガされることになっている別個の非連続的な回路サブシステム152,154,156,および158において導電的に結合された回路デバイス間の関連性を提供することができる。
【0029】
図6の例において、フリップフロップ・デバイス102,104,106,および108を除去する前に、回路サブシステム154は、回路コンポーネントを全く含まないか、または非常に僅かな回路コンポーネントを含んでいるなど、実質的に空であることが明らかとなる可能性があり、回路サブシステム154の入力112および回路サブシステム154の出力114(フリップフロップ・デバイス106からの出力として示されている)は導電的に結合されたものとして提供される。例えば、ユーザは、レジスタ・リバランス機能24を実施した後、回路サブシステム154が実質的に空であると判断することができる。したがって、フリップフロップ・デバイス102,104,106,108、特にフリップフロップ・デバイス104および106の除去により、結果的に回路サブシステム152および156の導電的な結合が得られる。しかしながら、回路サブシステム152および156は、非連続的な位相φ
1およびφ
3を有するので、回路サブシステム152および156がクロックの位相φ
1及びφ
3に応答してトリガするタイミングは、タイミングに関して回路システム54の誤った動作をもたらすこととなる。
【0030】
実質的に空の回路サブシステム(例えば、
図6の例における回路サブシステム154)に起因するタイミング問題の判定に応答して、ユーザは、入力スクリプトSCPTを介して回路サブシステム154に追加のJTL252を追加して、フリップフロップ・デバイス104および106を相互接続する。したがって、追加のJTL252は、付加的な位相遅延を提供して、適切な個々の位相φ
1およびφ
3を用いてクロック信号CLKによってトリガされることになっている非連続的な回路サブシステム152および156間の関連性を提供することができる。
図6の例において、位相φ
1を有する第1の回路サブシステム152と位相φ
3を有する第3の回路サブシステム156との間の導電性結合は、位相セグメントの差が1より大きいこと(例えば、この例では、位相セグメントの差が2)に基づく非連続的な導電性結合である。したがって、ユーザは、第1および第3の回路サブシステム152および156の間の導電性結合において単一の追加のJTL252を追加して、第1および第3の回路サブシステム152および156の間の導電性結合における付加的な1つの位相セグメント遅延を提供することができる。したがって、フリップフロップ・デバイス102,104,106,および108、特にフリップフロップ・デバイス104および106を除去すると、JTL252は、(例えば、クロック信号CLKの位相φ
2によってトリガされるように)位相φ
1とφ
3との間に十分な1つの位相セグメント遅延を与えて、クロック信号CLKの個々の位相φ
1およびφ
3での回路サブシステム152および156の適切なトリガを提供することができる。
【0031】
図6は、回路サブシステム154がJTL252が追加される実質的に空の回路サブシステムであることを示しているが、本明細書に記載の方法は、他の回路サブシステム152,156,または158のいずれかに適用可能であり、かつ同様に2以上の回路サブシステムに適用可能である。一例として、ユーザは、実質的に空の回路サブシステムである回路サブシステム152,154,156および158のいずれかに追加の1つのJTL252を追加して、追加のJTL252が個々の位相φ
1、φ
2、φ
3、φ
4における回路サブシステム152,154,156,および158の対応するトリガに対する十分な遅延を提供する。例えば、ユーザは、回路サブシステム152,154,156,および158間の導電性結合に沿って前後にトレースして、回路サブシステム152,154,156,および158に関連する個々の位相φ
1、φ
2、φ
3、およびφ
4に基づいて位相セグメントの差を決定することができる。したがって、非連続的な位相φ
1、φ
2、φ
3、およびφ
4を有する各導電性結合済みの回路サブシステム152,154,156,および158の間に1つまたは複数のJTL252を追加することによって、回路サブシステム152,154,156,および158は、クロック信号CLKによって適切にシーケンシャルにトリガされて、シミュレータ16による正確なシミュレーションをもたらし、かつ結果として得られるRQL回路設計の適切な動作を提供することができる。
【0032】
図2〜
図6の例は、クロックトリガ型フリップフロップ・デバイスの能力を含むことができるRQL回路を合成するために、ユーザが合成ツール12に提供することができる一連の入力スクリプトSCPTを提供する。方法の段階は、
図2〜
図6の例によって順次示されるが、入力スクリプトSCPTおよびRQL回路の設計段階は、
図2〜
図6の例によって示される段階の順序に限定されないことが理解されるべきである。例えば、前述の代わりに、プレースホルダ・フリップフロップ・デバイス52は、(例えば、レジスタ・リバランス機能24を介して)回路システム54の分離に続いて、複数のフリップフロップ・デバイス102,104,106,および108によって置き換えることができる。同様に、追加のJTL252は、フリップフロップ・デバイス102,104,106,および108を除去する前に、回路サブシステム152,154,156,158の間の導電性結合に追加することができる。したがって、RQL回路を設計および合成するための方法は、様々な方法で実施することができる。
【0033】
上記の構造的及び機能的特徴を考慮して、本発明の様々な態様による方法は、
図7〜
図9を参照することにより、より良く理解されるであろう。説明の簡略化のために、
図7〜
図9の方法は、連続して実行されるものとして示され説明されているが、本発明は説明された順番に制限されず、本発明によれば、いくつかの態様が、本明細書に示され記載されている態様とは別の態様で異なる順序で、および/または並行して実施されてもよい。さらに、本発明の一態様による方法を実施するために示された特徴の全てが必要とされるわけではない。
【0034】
図7は、合成ツール(例えば、合成ツール12)によりRQL回路設計(例えば、RQL回路250)を生成する方法300の一例を示す。302において、RQL回路設計の動作および制約(例えば、動作/制約18)に関連するデータおよびコンポーネント・ライブラリ(例えば、コンポーネント・ライブラリ20)が合成ツールに提供される。304において、データおよびコンポーネント・ライブラリに基づいて合成ツールによりフリップフロップ・デバイス(例えば、フリップフロップ・デバイス52)と、フリップフロップ・デバイスの入力および出力のうちの少なくとも1つに結合された回路システム(例えば、回路システム54)とを含むRQLネットリスト回路(例えば、RQLネットリスト回路22)が生成される。306において、入力(例えば、スクリプト入力SCPT)に基づいて合成ツールにより回路システムが、クロック信号(例えば、クロック信号CLK)の別個の個々の位相にそれぞれ関連する複数の回路サブシステム(例えば、回路サブシステム152,154,156,および158)に分離される。308において、フリップフロップ・デバイスが、入力に基づいて合成ツールによりRQLネットリスト回路から除去されて、RQL回路設計に対応する合成RQLネットリスト回路(例えば、RQLネットリスト回路22)が生成される。
【0035】
図8は、合成ツール(例えば、合成ツール12)によりRQL回路設計(例えば、RQL回路250)を生成する方法350の別の例を示す。352において、RQL回路設計(例えば、動作/制約18)の動作および制約に関連するデータおよびコンポーネント・ライブラリ(例えば、コンポーネント・ライブラリ20)が合成ツールに提供される。354において、データおよびコンポーネント・ライブラリに基づいて合成ツールによりフリップフロップ・デバイス(例えば、フリップフロップ・デバイス52)と、(例えば、フィードバックループ56および出力58を介して)フリップフロップ・デバイスの入力および出力のうちの少なくとも1つに結合された回路システム(例えば、回路システム54)とを含むRQLネットリスト回路(例えば、RQLネットリスト回路22)が生成される。356において、入力(例えば、入力スクリプトSCPT)に基づいて、フリップフロップ・デバイスは、クロック信号の各別個の位相(例えば、位相φ
1、φ
2、φ
3、およびφ
4)にそれぞれ対応する別個のクロック信号(CLK、CLK+90°、CLK+180°、およびCLK+270°)によって制御される複数のシーケンシャル・フリップフロップ・デバイス(例えば、フリップフロップ・デバイス102,104,106,および108)に置き換えられる。358において、回路システムは、複数のシーケンシャル・フリップフロップ・デバイスのうちの別個の1つにそれぞれ関連する複数の回路サブシステム(例えば、回路サブシステム152,154,156,および158)に分離され、入力に基づいて複数のシーケンシャル・フリップフロップの各々が複数の回路サブシステムの個々の対を相互接続するようにする。360において、複数のシーケンシャル・フリップフロップ・デバイスの各々が、入力に基づいて合成ツールによりRQLネットリスト回路から除去され、RQL回路設計に対応する合成RQLネットリスト回路(例えば、RQLネットリスト回路22)が生成される。
【0036】
図9は、合成ツール(例えば、合成ツール12)によりRQL回路設計(例えば、RQL回路250)を生成する方法400のさらに別の例を示す。402において、RQL回路設計(例えば、動作/制約18)の動作および制約に関連するデータおよびコンポーネント・ライブラリ(例えば、コンポーネント・ライブラリ20)が合成ツールに提供される。404において、データおよびコンポーネント・ライブラリに基づいて合成ツールによりフリップフロップ・デバイス(例えば、フリップフロップ・デバイス52)と、(例えば、フィードバックループ56および出力58を介して)フリップフロップ・デバイスの入力および出力のうちの少なくとも1つに結合された回路システム(例えば、回路システム54)とを含むRQLネットリスト回路(例えば、RQLネットリスト回路22)が生成される。一例として、フリップフロップ・デバイスは、それぞれが最終的に対応することができるような、クロック信号の別個の位相にそれぞれ対応する複数のフリップフロップ・デバイスに置き換えられ、リバランスされた回路サブシステムが登録される。406において、(例えば、レジスタ・リバランス機能24を介した)レジスタ・リバランス動作が、合成ツールによりRQLネットリスト回路上で実行され、回路システムが、直交クロック信号の別個の個々の位相(例えば、クロック信号CLKの位相φ
1、φ
2、φ
3、φ
4)に関連する第1の回路サブシステム(例えば、第1の回路サブシステム152)と、第2の回路サブシステム(例えば、第2の回路サブシステム154)と、第3の回路サブシステム(例えば、第3の回路サブシステム156)と、第4の回路サブシステム(例えば、第4の回路サブシステム158)とに分離される。一例として、レジスタ・リバランス動作は、複数のフリップフロップ・デバイスを含むRQLネットリスト回路上で実行され、フリップフロップ・デバイスは、いくつかのフリップフロップ・デバイスのうちの1つとすることができるか、または複数のフリップフロップ・デバイスに対応できるようにする。408において、入力(例えば、入力スクリプトSCPT)に基づいて合成ツールによりフリップフロップ・デバイス(例えば、フリップフロップ・デバイスのうちの1つ以上)がRQLネットリスト回路から除去され、RQL回路設計に対応する合成RQLネットリスト回路(例えば、RQLネットリスト回路22)が生成される。
【0037】
前述の構造的および機能的記述を考慮して、当業者は、本明細書で開示されるシステムおよび方法の一部が、方法、データ処理システム、または非一時的なコンピュータ可読媒体等のコンピュータプログラム製品として実施され得ることを認識するであろう。したがって、本明細書に開示されたアプローチの一部は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(例えば、非一時的な機械で可読媒体)、またはソフトウェアとハードウェアを組み合わせた実施形態の形態を取ることができる。さらに、本明細書に開示されるシステムおよび方法の一部は、媒体上にコンピュータ可読プログラムコードを有するコンピュータ使用可能記憶媒体上のコンピュータプログラム製品であってもよい。静的及び動的ストレージデバイス、ハードディスク、光ストレージデバイス、及び磁気ストレージデバイスを含むが、これらに限定されない任意の適切なコンピュータ可読媒体を利用することができる。
【0038】
特定の実施形態はまた、方法、システム、およびコンピュータプログラム製品のブロック図を参照して本明細書に記載されている。例示のブロック、および図のブロックの組み合わせは、コンピュータ実行可能命令によって実施できることが理解されよう。これらのコンピュータ実行可能命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能なデータ処理装置(または装置および回路の組み合わせ)の1つまたは複数のプロセッサに提供されて、機械を生成して、1つまたは複数のプロセッサにより実行される命令が、1つまたは複数のブロックで指定された機能を実行するようにしてもよい。
【0039】
コンピュータまたは他のプログラム可能なデータ処理装置に特定の機能するように指示するこれらのコンピュータ実行可能命令は、コンピュータ可読メモリにも格納され、コンピュータ可読メモリに格納された命令が、フローチャートの1つまたは複数のブロックで指定された機能を実行する命令を含む製造品となってもよい。コンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置にロードされて、コンピュータまたは他のプログラム可能な装置上で一連の動作ステップを実行して、コンピュータ実装プロセスを生成し、コンピュータまたは他のプログラム可能な装置で実行される命令が、フローチャートの1つまたは複数のブロックで指定された機能を実行するステップを提供する。
【0040】
上記の説明は、本発明の実施例である。もちろん、本発明を説明する目的で構成要素または方法のあらゆる考えられる組み合わせを説明することは不可能であるが、当業者であれば、本発明の多くのさらなる組み合わせおよび置換が可能であることを認識するであろう。したがって、本発明は、添付の特許請求の範囲の思想および範囲内に入るそのような変更、修正および変形をすべて包含することを意図している。
以下に、上記実施形態から把握できる技術思想を付記として記載する。
[付記1]
実行時に、合成ツールによりレシプロカル量子論理(RQL)回路設計を生成する方法を実行するように構成された命令を格納するように構成された非一時的なコンピュータ可読媒体であって、前記方法は、
RQL回路設計の動作および制約に関連するデータおよびコンポーネント・ライブラリを前記合成ツールに提供するステップと、
前記データおよび前記コンポーネント・ライブラリに基づいて前記合成ツールによりフリップフロップ・デバイス・プレースホルダと、前記フリップフロップ・デバイス・プレースホルダの入力および出力のうちの少なくとも1つに結合された回路システムとを含むRQLネットリスト回路を生成するステップと、
合成ツールにより前記RQLネットリスト回路上でレジスタ・リバランス動作を実行して、回路システムを、それぞれ直交クロック信号の別個の個々の位相に関連する第1の回路サブシステム、第2の回路サブシステム、第3の回路サブシステム、および第4の回路サブシステムに分割するステップと、
入力に基づいて前記合成ツールにより前記RQLネットリスト回路からフリップフロップ・デバイス・プレースホルダを除去して、前記RQLネットリスト回路に基づいてRQL回路設計を生成するステップと
を含む、媒体。
[付記2]
入力を提供するステップは、前記フリップフロップ・デバイス・プレースホルダを、前記第1、第2、第3、および第4の回路サブシステムに結合され、かつ入力により直交クロック信号の各別個の位相に対応する別個のクロック信号によってそれぞれ制御される第1のフリップフロップ・デバイス、第2のフリップフロップ・デバイス、第3のフリップフロップ・デバイス、および第4のフリップフロップ・デバイスに置き換えることを含む、付記1に記載の媒体。
[付記3]
前記フリップフロップ・デバイス・プレースホルダを除去するステップは、
前記第1、第2、第3および第4のフリップフロップ・デバイスの各々を除去して、前記第1、第2、第3および第4の回路サブシステムの連続する対の相互接続を提供すること、
前記入力により前記直交クロック信号を前記複数の回路サブシステムの各々に関連付けて、前記第1、第2、第3、および第4の回路サブシステムのシーケンシャルトリガを提供すること
を含む、付記2に記載の媒体。
[付記4]
前記第1、第2、第3及び第4の回路サブシステムの各々に関連するクロックの位相を評価するステップと、
複数のシーケンシャル・フリップフロップの除去に応答して非連続的なクロックの位相を有する前記第1、第2、第3および第4の回路サブシステムの一対の導電性結合をもたらす前記第1、第2、第3および第4の回路サブシステムの実質的に空いている回路サブシステムに入力により少なくとも1つのジョセフソン伝送線路(JTL)を追加するステップと
をさらに含む、付記2に記載の媒体。