指令定义 ======== 包含的基础门类型与参数说明 ------------------------ - **RPhi** (单门) - **qubit** (``uint32_t``): 目标比特 - **axis** (``double``): 旋转轴 phase - **angle** (``double``): 旋转角度 theta - **order** (``uint32_t``): 时序 - **ECHO** (单门) - **qubit** (``uint32_t``): 目标比特 - **order** (``uint32_t``): 时序 - **IDLE** (单门) - **qubit** (``uint32_t``): 目标比特 - **delay** (``uint32_t``): 时延,可变,影响后续门时序 - **order** (``uint32_t``): 时序 - **CZ** (双门) - **qubit** (``uint32_t``): 目标比特 - **ctrl** (``uint32_t``): 控制比特 - **order** (``uint32_t``): 时序 指令格式 -------- 指令格式采用json数组对象嵌套格式,最内层门对象包含一个5.1节所述基础门和其参数的组合和一个Measure门对象,基础门形如: .. code-block:: json {"Gate": [Qubit..., 其它参数..., 执行时序]} Measure门对象格式形如: .. code-block:: json {"Measure": [[Qubit...], 执行时序]} 一个完整的单线路指令一般是由多个上述基础门对象和一个Measure门对象共同组成的json数组,形如: .. code-block:: json [ {"Gate0": [Qubit..., 其它参数..., 执行时序]}, {"Gate1": [Qubit..., 其它参数..., 执行时序]}, ... {"Gaten": [Qubit..., 其它参数..., 执行时序]}, {"Measure": [[Qubit...], 执行时序]} ] 而任务一般是由多个线路的指令组成,即多个上述单线路指令的集合,所以一个任务完整的指令形如: .. code-block:: json [ [ {"Gate0": [Qubit..., 其它参数..., 执行时序]}, {"Gate1": [Qubit..., 其它参数..., 执行时序]}, ... {"Gaten": [Qubit..., 其它参数..., 执行时序]}, {"Measure": [[Qubit...], 执行时序]} ], ... [ {"Gate0": [Qubit..., 其它参数..., 执行时序]}, {"Gate1": [Qubit..., 其它参数..., 执行时序]}, ... {"Gatem": [Qubit..., 其它参数..., 执行时序]}, {"Measure": [[Qubit...], 执行时序]} ] ] **指令示例:** .. code-block:: json [ [ {"RPhi": [32, 270.0, 90.0, 0]}, {"RPhi": [33, 270.0, 90.0, 0]}, {"CZ": [32, 33, 30]}, {"RPhi": [33, 90.0, 90.0, 70]}, {"Measure": [[33, 32], 100]} ], [ {"IDLE": [32, 30, 0]}, {"Measure": [[32], 130]} ], [ {"RPhi": [33, 270.0, 90.0, 0]}, {"RPhi": [32, 180.0, 90.0, 100]}, {"Measure": [[33, 32], 130]} ] ]