GNURadioの量子ファームウェア拡張の概要:2Qubit編
前回の「GNURadioの量子ファームウェア拡張の概要:SDR連携編」の続きとなります。具体的な内容としては、2Qubit以上を扱うための方法の解説となります。
まず、ゲート側として、2Qubit以上を操作するゲートとして、CNOTブロックとCTRL junction pointブロックを用意しています。要するに、操作したいQubitに対して、CTRL junction pointブロックを使用して接続する形で制御します。(ほかにもいろいろありますが、今回はCNOTのみをターゲットとしています。)
さらに、Qubitの操作や観測系も、2Qubit対応のため、 Qubit SimulatorブロックとQubit Detectorブロックの入出力portが2倍になっています。これは、特別なブロックを用意しているわけではなく、ブロックの機能として、Qubit数を設定できるようにしてあるためです。
続いてのポイントは、今まであえて説明してこなかったQuantum Coprocessorブロックについている「3本目」のportです。いままでのgate portとreadout portに加えて、control portというものがあります。これが、他のQubitを操作するときに使うportとなります。このportから出力された電波は、 CTRL junction pointブロックで繋がっているQubitにも影響を与えます。これにより、2Qubit以上の制御が可能となっています。(ただし、gate portとcontrol portは共通ということもあるため、SDRのサンプルではMultiplayブロックを使って一本にしています。さらに、 controlはDCであることもあるため、CNOTブロック内でDCも選択できるようになっています。)
最後に、現在の拡張機能を簡単に紹介します。
- ゲートブロックのI wave&Q wave出力ポート
- 生成予定のI waveとQ waveを出力するデバッグ用のポートである
- Sync Qubitブロック
- FPGA化するときに、2Qubit以上(2個以上のSDRなど)をコントロールするときに使用するブロックである
- Qubit Detectorブロックのfeedbackポート
- Qubit観測後(readout後)、Qubitを初期化(Initializerブロック)するには、readout状態を踏まえたうえで初期化する必要がある。そのため、Initializerブロックにreadout状態をfeedbackするためのポートである
以上、GNURadioの量子ファームウェア拡張編の三部作が終了です。まだ、完全に動く状態となっていないため、現時点では非公開ですが、試してみたい方はご連絡いただければ、コードのほうを送付させていただきます。
2件の返信
I have try the gr-quantum project on github and find a little problem. I am very interested in the GNURadio Quantum Firmware Extension. Could you please share your code with me? Thanks very much.
Hi,
Please download it from github.
https://github.com/noritsuna/gr-quantum