nsqdriver 0.2.7__py3-none-any.whl → 0.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nsqdriver might be problematic. Click here for more details.
- nsqdriver/NS_MCI.py +17 -1
- nsqdriver/NS_QSYNC.py +20 -1
- nsqdriver/__init__.py +3 -2
- nsqdriver/compiler/__init__.py +0 -0
- nsqdriver/compiler/ns_wave.cpython-310-darwin.so +0 -0
- nsqdriver/compiler/py_wave_asm.cpython-310-darwin.so +0 -0
- nsqdriver/setup.py +2 -7
- nsqdriver-0.3.1.dist-info/METADATA +99 -0
- nsqdriver-0.3.1.dist-info/RECORD +17 -0
- {nsqdriver-0.2.7.dist-info → nsqdriver-0.3.1.dist-info}/WHEEL +1 -1
- nsqdriver-0.2.7.dist-info/METADATA +0 -16
- nsqdriver-0.2.7.dist-info/RECORD +0 -14
- {nsqdriver-0.2.7.dist-info → nsqdriver-0.3.1.dist-info}/top_level.txt +0 -0
nsqdriver/NS_MCI.py
CHANGED
|
@@ -10,7 +10,23 @@ from functools import wraps
|
|
|
10
10
|
import numpy as np
|
|
11
11
|
import waveforms
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
try:
|
|
14
|
+
from .common import BaseDriver, Quantity, get_coef
|
|
15
|
+
except ImportError as e:
|
|
16
|
+
class BaseDriver:
|
|
17
|
+
def __init__(self, addr, timeout, **kw):
|
|
18
|
+
self.addr = addr
|
|
19
|
+
self.timeout = timeout
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class Quantity(object):
|
|
23
|
+
def __init__(self, name: str, value=None, ch: int = 1, unit: str = ''):
|
|
24
|
+
self.name = name
|
|
25
|
+
self.default = dict(value=value, ch=ch, unit=unit)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def get_coef(*args):
|
|
29
|
+
return '', '', '', ''
|
|
14
30
|
|
|
15
31
|
DEBUG_PRINT = False
|
|
16
32
|
|
nsqdriver/NS_QSYNC.py
CHANGED
|
@@ -11,7 +11,26 @@ from multiprocessing import shared_memory
|
|
|
11
11
|
from functools import lru_cache, wraps
|
|
12
12
|
from typing import Union, TYPE_CHECKING, Tuple, Iterable
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
try:
|
|
15
|
+
from .common import BaseDriver, Quantity, QInteger
|
|
16
|
+
except ImportError as e:
|
|
17
|
+
class BaseDriver:
|
|
18
|
+
def __init__(self, addr, timeout, **kw):
|
|
19
|
+
self.addr = addr
|
|
20
|
+
self.timeout = timeout
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class Quantity(object):
|
|
24
|
+
def __init__(self, name: str, value=None, ch: int = 1, unit: str = ''):
|
|
25
|
+
self.name = name
|
|
26
|
+
self.default = dict(value=value, ch=ch, unit=unit)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class QInteger:
|
|
30
|
+
def __init__(self, name, value=None, unit='', ch=None,
|
|
31
|
+
get_cmd='', set_cmd='', ):
|
|
32
|
+
self.name = name
|
|
33
|
+
|
|
15
34
|
|
|
16
35
|
if TYPE_CHECKING:
|
|
17
36
|
from backend.board_parser import MCIBoard
|
nsqdriver/__init__.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from .NS_MCI import Driver as MCIDriver
|
|
2
2
|
from .NS_QSYNC import Driver as QSYNCDriver
|
|
3
3
|
from .NS_CST import Driver as CSTDriver
|
|
4
|
+
from .compiler.ns_wave import InsChannel
|
|
4
5
|
|
|
5
|
-
version_pack = (0,
|
|
6
|
+
version_pack = (0, 3, 1)
|
|
6
7
|
|
|
7
8
|
__version__ = '.'.join(str(_) for _ in version_pack)
|
|
8
|
-
__all__ = ['MCIDriver', 'QSYNCDriver', '__version__']
|
|
9
|
+
__all__ = ['MCIDriver', 'QSYNCDriver', 'CSTDriver', 'InsChannel', '__version__']
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
nsqdriver/setup.py
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
from setuptools import setup
|
|
2
|
-
from setuptools.extension import Extension
|
|
3
2
|
from Cython.Build import cythonize
|
|
4
3
|
import numpy as np
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
extension = [Extension("*", ["nsqdriver/wrapper/*.py"], language='c++'),
|
|
8
|
-
Extension("*", ["nsqdriver/*.py"], language='c++')]
|
|
9
|
-
|
|
10
5
|
setup(
|
|
11
|
-
name='
|
|
12
|
-
ext_modules=cythonize(
|
|
6
|
+
name='compiler',
|
|
7
|
+
ext_modules=cythonize([r'nsqdriver/compiler/ns_wave.py', r'nsqdriver/compiler/py_wave_asm.py'], language_level=3),
|
|
13
8
|
include_path=[np.get_include()]
|
|
14
9
|
)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: nsqdriver
|
|
3
|
+
Version: 0.3.1
|
|
4
|
+
Summary: Naishu Q series quantum measurement and control equipment driver interface
|
|
5
|
+
Home-page: https://g2hoyqcmh4.feishu.cn/wiki/wikcnzvyMd82DLZUe2NsI6HxsFc
|
|
6
|
+
Author: Naishu Technology
|
|
7
|
+
Author-email: jilianyi@naishu.tech
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Requires-Python: >=3.9
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
Requires-Dist: numpy (>=1.18)
|
|
15
|
+
Requires-Dist: waveforms
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
_ _ ____ ___ ____ _
|
|
19
|
+
| \ | | / ___| / _ \ | _ \ _ __ (_) __ __ ___ _ __
|
|
20
|
+
| \| | \___ \ | | | | | | | | | '__| | | \ \ / / / _ \ | '__|
|
|
21
|
+
| |\ | ___) | | |_| | | |_| | | | | | \ V / | __/ | |
|
|
22
|
+
|_| \_| |____/ \__\_\ |____/ |_| |_| \_/ \___| |_|
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
[](https://github.com/mianyan-echo/UltraMCI/)
|
|
26
|
+
***
|
|
27
|
+
|
|
28
|
+
### 简介
|
|
29
|
+
NSQDriver为一套耐数®量子测控系列设备的Python通用驱动接口。可使用Python作为编程语言,基于此驱动接口可以实现对本公司测控设备的控制,进而完成各种超导量子芯片的表征实验和高保真门操作。
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
+------------------------+
|
|
33
|
+
| Python |
|
|
34
|
+
| +------------------+
|
|
35
|
+
| | NSQDriver |
|
|
36
|
+
+------------------------+
|
|
37
|
+
: : :
|
|
38
|
+
+---------- : -----+
|
|
39
|
+
: : :
|
|
40
|
+
V V V
|
|
41
|
+
+-----------+ +-----------+ +-----------+
|
|
42
|
+
| Device A | | Device B | | QSYNC |
|
|
43
|
+
+-----------+ +-----------+ +-----------+
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
NSQDriver接口可用于统一控制耐数®生产的Q100、MC、QSYNC等一系列量子测控仪器,可详细控制每台仪器每个OUT、IN通道的播放与采集行为,以及查看设备的运行状态等。在一个多台测控设备组成的多量子比特测控系统中,可以有效的在软件层面实现对系统中每台设备的详细控制。
|
|
47
|
+
|
|
48
|
+
耐数®量子测控系列设备详细信息参考: [耐数](http://naishu.tech)
|
|
49
|
+
|
|
50
|
+
***
|
|
51
|
+
### 快速开始
|
|
52
|
+
- 驱动接口的通用流程如下
|
|
53
|
+
```python
|
|
54
|
+
from nsqdriver import MCIDriver, QSYNCDriver
|
|
55
|
+
|
|
56
|
+
# 实例化设备驱动接口
|
|
57
|
+
driver = MCIDriver('127.0.0.1')
|
|
58
|
+
qsync = QSYNCDriver('127.0.0.1')
|
|
59
|
+
|
|
60
|
+
# 连接设备
|
|
61
|
+
qsync.open()
|
|
62
|
+
driver.open()
|
|
63
|
+
|
|
64
|
+
# 初始化系统
|
|
65
|
+
qsync.sync_system()
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
# 相关参数,参数细节相关参考 8.可用参数列表
|
|
69
|
+
driver.set('Shot', 1024)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
- NSWave接口
|
|
73
|
+
- NSWave是一种对于耐数®参数化波形技术的控制接口,参数化波形将量子测控所需的各种门的编辑由主控计算机直接生成波形转化成了设备实时计算
|
|
74
|
+
- 提供了一套直观的时序编辑接口
|
|
75
|
+
```python
|
|
76
|
+
from nsqdriver import InsChannel
|
|
77
|
+
import numpy as np
|
|
78
|
+
|
|
79
|
+
ch = InsChannel() # 生成参数化波形通道实例
|
|
80
|
+
|
|
81
|
+
frame_65e9 = ch.ins_frame(6.5e9) # 生成一个frame
|
|
82
|
+
frame_67e9 = ch.ins_frame(6.7e9) # 生成一个frame
|
|
83
|
+
|
|
84
|
+
gaussian = ch.evlp_gaussian(4500e-9) # 生成一个高斯包络
|
|
85
|
+
square = ch.evlp_square(2500e-9) # 生成一个方波包络
|
|
86
|
+
|
|
87
|
+
wave1 = gaussian * frame_67e9 # 生成一段高斯包络的波形
|
|
88
|
+
wave2 = square * frame_65e9 # 生成一段方波包络的波形
|
|
89
|
+
|
|
90
|
+
ch.ins_reset_frame('phase', frame_65e9)
|
|
91
|
+
ch.ins_reset_frame('phase', frame_67e9)
|
|
92
|
+
ch.wait_for_trigger() # 等待触发到来
|
|
93
|
+
# 循环播放200次 3μs延迟+ 7μs波形
|
|
94
|
+
with ch.ins_loop(times=200) as _loop:
|
|
95
|
+
_loop.play_zero(3000e-9)
|
|
96
|
+
_loop.inc_phase(frame_65e9, np.pi / 2)
|
|
97
|
+
_loop.play_wave(wave2)
|
|
98
|
+
_loop.play_wave(wave1)
|
|
99
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
nsqdriver/NS_CST.py,sha256=_QYCjg1YglIJ4YVmxvISqvy5rExWGlMhyrK9zYIRbRY,7877
|
|
2
|
+
nsqdriver/NS_MCI.py,sha256=ZRf_waF7Q3VnClZnvjogfhVkqW7ltmwZaXXCRU8qA0o,19542
|
|
3
|
+
nsqdriver/NS_QSYNC.py,sha256=68qFZ04KVXb0MSaeKIZVZYqR0UV_tkJYWz7KSz4Dvg0,23281
|
|
4
|
+
nsqdriver/__init__.py,sha256=BXs30hyT5ovY79xD1SYbTce9c1CPM7q0siC1EjyzGwk,326
|
|
5
|
+
nsqdriver/common.py,sha256=IHfShqgNN3THbe7KD7ICdfFY7JKC_kQj0_KJk-449gQ,499
|
|
6
|
+
nsqdriver/setup.py,sha256=qLy-jDmc3nxnXVoJo4g2cnTvFL3lOiYu_t-vaJ8Z_8o,269
|
|
7
|
+
nsqdriver/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
nsqdriver/compiler/ns_wave.cpython-310-darwin.so,sha256=WBh_NOyU4e6G6xBitLFXLkkFvKqCn9ptf3cGTEkjEaE,410360
|
|
9
|
+
nsqdriver/compiler/py_wave_asm.cpython-310-darwin.so,sha256=noQ3HaHLl1NUsT29eU_XA3j5Nlp4_egB-nQqjYiy8p8,432200
|
|
10
|
+
nsqdriver/wrapper/AWG_ADC.py,sha256=8K5xLEa_3CKnStWcoJeTj8ufEQfrx6o4l4XGNuOP3Ug,19211
|
|
11
|
+
nsqdriver/wrapper/BD_NSMCI.py,sha256=SMnDbS6iXDiPBhoR9QVJB_lJXhIXRQIVLJRSBEihLzw,12245
|
|
12
|
+
nsqdriver/wrapper/ND_NSMCI.py,sha256=gTyrDObhbggl35V_q-kpDoPsfttIEnDFc6f0-pk_P0k,6288
|
|
13
|
+
nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
nsqdriver-0.3.1.dist-info/METADATA,sha256=qGCBFfF-7sVIK42k9E5AqUPxEWrawBmI1fSMhoNDOJU,4091
|
|
15
|
+
nsqdriver-0.3.1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
16
|
+
nsqdriver-0.3.1.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
|
|
17
|
+
nsqdriver-0.3.1.dist-info/RECORD,,
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: nsqdriver
|
|
3
|
-
Version: 0.2.7
|
|
4
|
-
Summary: Naishu Q series quantum measurement and control equipment driver interface
|
|
5
|
-
Home-page: https://g2hoyqcmh4.feishu.cn/wiki/wikcnzvyMd82DLZUe2NsI6HxsFc
|
|
6
|
-
Author: Naishu Technology
|
|
7
|
-
Author-email: jilianyi@naishu.tech
|
|
8
|
-
Classifier: Intended Audience :: Developers
|
|
9
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Requires-Python: >=3.8
|
|
14
|
-
Requires-Dist: numpy (>=1.18)
|
|
15
|
-
Requires-Dist: waveforms
|
|
16
|
-
|
nsqdriver-0.2.7.dist-info/RECORD
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
nsqdriver/NS_CST.py,sha256=_QYCjg1YglIJ4YVmxvISqvy5rExWGlMhyrK9zYIRbRY,7877
|
|
2
|
-
nsqdriver/NS_MCI.py,sha256=nyCQji_UxVFfyaE8QHJ_laE0Ga8ybSHbe0-d5k65QjY,19114
|
|
3
|
-
nsqdriver/NS_QSYNC.py,sha256=P5BDiTz7hu6omwFnjGfGXfnzAoBfrvGYAYLTT45RoOc,22747
|
|
4
|
-
nsqdriver/__init__.py,sha256=-3uVvvbhxJ779M6t0WMH2y7VyKSqeB9c48fmlS3EpHA,258
|
|
5
|
-
nsqdriver/common.py,sha256=IHfShqgNN3THbe7KD7ICdfFY7JKC_kQj0_KJk-449gQ,499
|
|
6
|
-
nsqdriver/setup.py,sha256=4ajKQtY4hr2240f5sA81f66_92Yp_wG6gPM-zsOWq9M,390
|
|
7
|
-
nsqdriver/wrapper/AWG_ADC.py,sha256=8K5xLEa_3CKnStWcoJeTj8ufEQfrx6o4l4XGNuOP3Ug,19211
|
|
8
|
-
nsqdriver/wrapper/BD_NSMCI.py,sha256=SMnDbS6iXDiPBhoR9QVJB_lJXhIXRQIVLJRSBEihLzw,12245
|
|
9
|
-
nsqdriver/wrapper/ND_NSMCI.py,sha256=gTyrDObhbggl35V_q-kpDoPsfttIEnDFc6f0-pk_P0k,6288
|
|
10
|
-
nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
nsqdriver-0.2.7.dist-info/METADATA,sha256=VMFXdmtWgbPJhy46XiiDFFr29Y-tdBjBeXjmDHwgVjk,596
|
|
12
|
-
nsqdriver-0.2.7.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
13
|
-
nsqdriver-0.2.7.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
|
|
14
|
-
nsqdriver-0.2.7.dist-info/RECORD,,
|
|
File without changes
|