GNURadioの量子ファームウェア拡張の概要:ブロック解説編
今回は、前回の「量子ファームウェアとは?」の続きとなります。具体的な内容としては、実際に行うGNURadioの拡張について、解説していきます。
まずは、今回拡張を行ったブロックです。
Usage
ゲート系
1量子ビットのゲート
- X
- ビット反転演算
- Y
- 位相反転演算
- Z
- 位相・ビット反転演算
- H
- アダマール演算
- S
- Pai/2位相シフト演算
- T
- Pai/4位相シフト演算
2量子ビットのゲート
- CNOT
- 制御NOTゲート
- CTRL junction point
- 制御ゲートが影響を与える先
特殊なゲート
- readout演算子
- readoutを実施する。実質の観測用ゲート
- 初期化演算子
- 量子ビットの状態を初期化する。
- wait演算子
- ナノ秒数waitする
- これで各ゲートを同期させる
観測系(measurement)
- 標準規定測定(Constellation Measurement)
- 観測後の確率表示
- ブロッホ測定(Bloch Measurement)
- 量子ビットの断層撮影表示
- 量子シミュレータ・観測器(Qubit Detector)
- コンパイラのほうに処理結果を返すもの
- 値を表示するもの
操作系(controller)
- 量子ファームウェア実行エンジンソース(Quantum Coprocessor)
- スクリプトを実行して、波形を出力する
- Initializer
- 定数などのセットアップをするブロック
- シミュレートモード(時間倍率などを変更)
- 量子シミュレータ・実行器(Qubit Simulator)
- 内部的には接続されていて、状態を両方で保持する。入出力を多数にする方法で多量子ビットを表す。
- 同期(Sync Qubit)
- 2量子ビット以上利用するときに同期を行う
- FPGA拡張するときに利用する
IBM Qなどを触ったことがある人なら、ビンと来るかもしれませんが、そうじゃないと何のことか全くわからないと思います。そこで、1QubitをXゲートするサンプルを示します。
Initializerブロック~readoutブロックの間にgate系のブロックを挿入することで、Qubit(量子ビット)を操作するという感じです。そして、その操作内容はQuantum Coprocessorブロックによって解釈され、各ゲート操作をするための電波をGate Portから出力し、 Qubit Simulatorブロックが解釈してQubitを動かします。 観測(読み出し)時は、readout Portからreadout電波を出力して、 Qubit Detectorブロックがその電波を解釈して、結果が出力されます。
この時の各出力される電波が、 「量子ファームウェアとは?」 で解説した形の電波となります。実際には、各ゲートごとでこれらの周波数や強度、照射時間が違うのです。
1件の返信
[…] 前回の「GNURadioの量子ファームウェア拡張の概要:ブロック解説編」の続きとなります。具体的な内容としては、前回の最後に開設した1Qubitの操作をSDRを使って行う場合の例となります。 […]