nsqdriver 0.0.203__cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl → 0.12.11__cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.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.
- nsqdriver/NS_DDS_v3.py +28 -182
- nsqdriver/__init__.py +1 -1
- nsqdriver/compiler/assembler.cpython-310-aarch64-linux-gnu.so +0 -0
- nsqdriver/nswave/_functions.cpython-310-aarch64-linux-gnu.so +0 -0
- nsqdriver/nswave/_ir.cpython-310-aarch64-linux-gnu.so +0 -0
- nsqdriver/nswave/kernel.cpython-310-aarch64-linux-gnu.so +0 -0
- {nsqdriver-0.0.203.dist-info → nsqdriver-0.12.11.dist-info}/METADATA +1 -1
- {nsqdriver-0.0.203.dist-info → nsqdriver-0.12.11.dist-info}/RECORD +10 -10
- {nsqdriver-0.0.203.dist-info → nsqdriver-0.12.11.dist-info}/WHEEL +0 -0
- {nsqdriver-0.0.203.dist-info → nsqdriver-0.12.11.dist-info}/top_level.txt +0 -0
nsqdriver/NS_DDS_v3.py
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import copy
|
|
2
2
|
from enum import Enum
|
|
3
|
-
from math import ceil
|
|
4
3
|
from collections import namedtuple
|
|
5
|
-
from waveforms import Waveform, wave_eval
|
|
6
|
-
from waveforms.waveform import _zero
|
|
4
|
+
from waveforms import Waveform, wave_eval
|
|
7
5
|
from waveforms.math.signal import getFTMatrix, shift
|
|
8
6
|
import nsqdriver.nswave as nw
|
|
9
7
|
|
|
@@ -89,27 +87,14 @@ def program_cap(param: nw.Var):
|
|
|
89
87
|
nw.wait_for_trigger()
|
|
90
88
|
i: nw.Var
|
|
91
89
|
# param: [[100e-9, 1e-6], [200e-9, 1e-6]]
|
|
92
|
-
# nw.wait(150e-9)
|
|
93
90
|
for i in param:
|
|
94
91
|
nw.wait(i[0])
|
|
95
|
-
nw.capture(i[1],
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
@nw.kernel
|
|
99
|
-
def program_da(p: nw.Var):
|
|
100
|
-
i: nw.Var
|
|
101
|
-
e: nw.Var
|
|
102
|
-
nw.init_frame(0, 0)
|
|
103
|
-
nw.wait_for_trigger()
|
|
104
|
-
# nw.reset_frame()
|
|
105
|
-
for i in p:
|
|
106
|
-
nw.wait(i[0])
|
|
107
|
-
e = nw.ins_envelope(i[1])
|
|
108
|
-
nw.play_wave(e, 1, 0, 0)
|
|
92
|
+
nw.capture(i[1], i[2], i[3])
|
|
109
93
|
|
|
110
94
|
|
|
111
95
|
ProbeSegment = namedtuple('ProbeSegment', ['start', 'stop', 'freq'])
|
|
112
96
|
|
|
97
|
+
|
|
113
98
|
CaptureCmd = namedtuple('CaptureCmd', [
|
|
114
99
|
'start', 'ad_duration', 'delay', 'da_duration', 'freqs', 'delays'
|
|
115
100
|
])
|
|
@@ -176,7 +161,8 @@ class Driver(BaseDriver):
|
|
|
176
161
|
# barthann、cosine、exponential、tukey、taylor
|
|
177
162
|
|
|
178
163
|
# 内触发
|
|
179
|
-
Quantity('GenerateTrig', value=1e7,
|
|
164
|
+
Quantity('GenerateTrig', value=1e7,
|
|
165
|
+
unit='ns'), # set/get,触发周期单位ns,触发数量=shot
|
|
180
166
|
Quantity('UpdateFirmware', value='', ch=1), # qsync固件更新
|
|
181
167
|
Quantity('PipInstall') # pip install in instance
|
|
182
168
|
]
|
|
@@ -194,8 +180,7 @@ class Driver(BaseDriver):
|
|
|
194
180
|
self.coef_cache = {}
|
|
195
181
|
self.res_maps = {}
|
|
196
182
|
self.probe_da_wave = {}
|
|
197
|
-
|
|
198
|
-
self.probe_delay = 0e-9
|
|
183
|
+
self.probe_delay = 32e-9
|
|
199
184
|
self.capture_cmds: "dict[int, list[CaptureCmd]]" = {}
|
|
200
185
|
self.capture_cali_param: "dict[int, np.ndarray]" = {}
|
|
201
186
|
self.capture_points: "dict[int, np.ndarray]" = {}
|
|
@@ -226,24 +211,18 @@ class Driver(BaseDriver):
|
|
|
226
211
|
|
|
227
212
|
def granularity4ns(self, delay):
|
|
228
213
|
points_4ns = 16 # self.ad_srate*4e-6
|
|
229
|
-
return delay
|
|
230
|
-
|
|
231
|
-
def granularity4ns_zero_num(self, delay):
|
|
232
|
-
points_4ns = 16
|
|
233
|
-
out_delay = delay * self.srate // points_4ns * points_4ns / self.srate
|
|
234
|
-
zero_num = round((delay - out_delay) * self.srate)
|
|
235
|
-
return out_delay, zero_num
|
|
214
|
+
return delay*self.ad_srate//points_4ns*points_4ns/self.ad_srate
|
|
236
215
|
|
|
237
216
|
@staticmethod
|
|
238
217
|
def _delay2_phase(delay, freq):
|
|
239
|
-
return 2
|
|
218
|
+
return 2*np.pi*freq*delay
|
|
240
219
|
|
|
241
|
-
def
|
|
220
|
+
def get_sequence_in_time(self, coef_info: dict) -> list[CaptureCmd]:
|
|
242
221
|
w_list = coef_info.get('wList', [])
|
|
243
222
|
time_segments: "list[ProbeSegment]" = []
|
|
244
223
|
|
|
245
224
|
for wave in w_list:
|
|
246
|
-
t0 =
|
|
225
|
+
t0 = wave['t0']
|
|
247
226
|
weight_expr = wave['weight']
|
|
248
227
|
|
|
249
228
|
# 假设 weight 表达式格式为 "square(X) >> Y",我们提取实际时间宽度
|
|
@@ -251,7 +230,7 @@ class Driver(BaseDriver):
|
|
|
251
230
|
_start, _stop, _ = wave_eval(weight_expr).bounds
|
|
252
231
|
|
|
253
232
|
# 将区间加入列表
|
|
254
|
-
seg = ProbeSegment(t0
|
|
233
|
+
seg = ProbeSegment(t0+_start, t0+_stop, wave['Delta'])
|
|
255
234
|
time_segments.append(seg)
|
|
256
235
|
|
|
257
236
|
# 按起始时间排序
|
|
@@ -261,7 +240,7 @@ class Driver(BaseDriver):
|
|
|
261
240
|
non_overlapping_segments: list[CaptureCmd] = []
|
|
262
241
|
current_start, current_end = time_segments[0].start, time_segments[0].stop
|
|
263
242
|
current_cmd = CaptureCmd(0, 0, 0, 0, [time_segments[0].freq], [0.])
|
|
264
|
-
current_align_delay = current_start
|
|
243
|
+
current_align_delay = current_start-self.granularity4ns(current_start)
|
|
265
244
|
pointer = 0
|
|
266
245
|
|
|
267
246
|
for seg in time_segments[1:]:
|
|
@@ -284,7 +263,7 @@ class Driver(BaseDriver):
|
|
|
284
263
|
current_end = max(current_end, seg.stop)
|
|
285
264
|
current_cmd.freqs.append(seg.freq)
|
|
286
265
|
# 由delay换算解缠绕相位
|
|
287
|
-
current_cmd.delays.append(seg.start
|
|
266
|
+
current_cmd.delays.append(seg.start-current_start)
|
|
288
267
|
else:
|
|
289
268
|
# 添加最后一个段
|
|
290
269
|
current_cmd = current_cmd._replace(start=current_start - pointer - self.probe_delay)
|
|
@@ -294,14 +273,14 @@ class Driver(BaseDriver):
|
|
|
294
273
|
non_overlapping_segments.append(current_cmd)
|
|
295
274
|
return non_overlapping_segments
|
|
296
275
|
|
|
297
|
-
def
|
|
276
|
+
def generate_para(self, coef_info, ch):
|
|
298
277
|
res_map = []
|
|
299
278
|
phase_map = []
|
|
300
279
|
points_map = []
|
|
301
280
|
freq_map = []
|
|
302
281
|
seq_param = []
|
|
303
282
|
|
|
304
|
-
self.capture_cmds[ch] = seq = self.
|
|
283
|
+
self.capture_cmds[ch] = seq = self.get_sequence_in_time(coef_info)
|
|
305
284
|
|
|
306
285
|
for segment in seq:
|
|
307
286
|
freq_map.extend(segment.freqs)
|
|
@@ -309,89 +288,26 @@ class Driver(BaseDriver):
|
|
|
309
288
|
|
|
310
289
|
for cap_num, segment in enumerate(seq):
|
|
311
290
|
_start = self.granularity4ns(segment.start)
|
|
312
|
-
_start_diff = segment.start
|
|
291
|
+
_start_diff = segment.start-_start
|
|
313
292
|
seq_param.append([
|
|
314
293
|
_start, segment.ad_duration, segment.delay, segment.da_duration
|
|
315
294
|
])
|
|
316
295
|
for delay, freq in zip(segment.delays, segment.freqs):
|
|
317
296
|
res_map.append([freq_map.index(freq), cap_num])
|
|
318
|
-
phase_map.append(self._delay2_phase(delay
|
|
319
|
-
points_map.append(segment.ad_duration
|
|
297
|
+
phase_map.append(self._delay2_phase(delay, freq))
|
|
298
|
+
points_map.append(segment.ad_duration*self.ad_srate)
|
|
320
299
|
|
|
321
300
|
self.res_maps[ch] = res_map
|
|
322
|
-
self.capture_cali_param[ch] = np.exp(-1j
|
|
301
|
+
self.capture_cali_param[ch] = np.exp(-1j*np.array(phase_map)).reshape((-1, 1))
|
|
323
302
|
self.capture_points[ch] = np.array(points_map).reshape((-1, 1))
|
|
324
303
|
return program_cap(seq_param), freq_map
|
|
325
304
|
|
|
326
|
-
def out_sequence_in_time(self, wave_list: list):
|
|
327
|
-
last_start = wave_list[0][0]
|
|
328
|
-
last_stop = wave_list[0][1]
|
|
329
|
-
temp_w = [wave_list[0][2]]
|
|
330
|
-
_res = []
|
|
331
|
-
|
|
332
|
-
for idx, (start, stop, seg) in enumerate(wave_list[1:]):
|
|
333
|
-
if start > last_stop:
|
|
334
|
-
_res.append([last_start, last_stop, np.hstack(temp_w)])
|
|
335
|
-
last_start = start
|
|
336
|
-
last_stop = stop
|
|
337
|
-
temp_w.clear()
|
|
338
|
-
temp_w.append(seg)
|
|
339
|
-
else:
|
|
340
|
-
last_stop = max(last_stop, stop)
|
|
341
|
-
temp_w.append(seg)
|
|
342
|
-
else:
|
|
343
|
-
_res.append([last_start, last_stop, np.hstack(temp_w)])
|
|
344
|
-
return _res
|
|
345
|
-
|
|
346
|
-
def gen_wave_frag(self, x, wave: "Waveform"):
|
|
347
|
-
range_list = np.searchsorted(x, wave.bounds)
|
|
348
|
-
#ret = np.zeros_like(x)
|
|
349
|
-
ret = []
|
|
350
|
-
start, stop = 0, 0
|
|
351
|
-
for i, stop in enumerate(range_list):
|
|
352
|
-
if start < stop and wave.seq[i] != _zero:
|
|
353
|
-
_w = copy.deepcopy(wave)
|
|
354
|
-
_w.start = start/self.srate
|
|
355
|
-
_w.stop = stop/self.srate
|
|
356
|
-
part = _w.sample(self.srate)
|
|
357
|
-
ret.append((start, stop, part))
|
|
358
|
-
start = stop
|
|
359
|
-
else:
|
|
360
|
-
if not ret:
|
|
361
|
-
ret.append((0, 128, np.zeros((128, ))))
|
|
362
|
-
return ret
|
|
363
|
-
|
|
364
|
-
def generate_out_program(self, _wave, ch):
|
|
365
|
-
align_points = 32 # 4ns*8e9
|
|
366
|
-
if isinstance(_wave, WaveVStack):
|
|
367
|
-
_wave = _wave.simplify()
|
|
368
|
-
if len(_wave.seq) == 1 and _wave.seq[0] == _zero:
|
|
369
|
-
wave_list = [(0, 128, np.zeros((128, )))]
|
|
370
|
-
else:
|
|
371
|
-
_wave.stop = _wave.bounds[-2]
|
|
372
|
-
wave_list = self.gen_wave_frag(np.linspace(_wave.start, _wave.stop, int((_wave.stop-_wave.start) * self.srate)+1), _wave)
|
|
373
|
-
# wave_list = self.gen_wave_frag(np.arange(_wave.start, _wave.stop, 1/self.srate), _wave)
|
|
374
|
-
print(f'generate_out_program: {_wave.start=}, {_wave.stop=}, {wave_list=}, {ch=}')
|
|
375
|
-
_t_end = 0
|
|
376
|
-
para = []
|
|
377
|
-
wave = self.out_sequence_in_time(wave_list)
|
|
378
|
-
|
|
379
|
-
for i in wave:
|
|
380
|
-
wait = (i[0] - _t_end)
|
|
381
|
-
align_wait = wait // align_points * align_points
|
|
382
|
-
zero_num = wait - align_wait
|
|
383
|
-
align_end = ceil(i[1]/align_points)*align_points
|
|
384
|
-
align_wave = [np.zeros(zero_num), i[2], np.zeros([align_end - i[1]])]
|
|
385
|
-
para.append([align_wait/self.srate, np.hstack(align_wave)])
|
|
386
|
-
_t_end = align_end
|
|
387
|
-
return program_da(para)
|
|
388
|
-
|
|
389
305
|
def get_coef_res(self, iq_res, ch):
|
|
390
306
|
res = []
|
|
391
307
|
for (freq_num, cap_num) in self.res_maps[ch]:
|
|
392
308
|
res.append(iq_res[freq_num][cap_num::len(self.capture_cmds[ch])])
|
|
393
309
|
# 采样点归一化
|
|
394
|
-
res = np.array(res)
|
|
310
|
+
res = np.array(res)/self.capture_points[ch]
|
|
395
311
|
# 校准相位
|
|
396
312
|
res *= self.capture_cali_param[ch]
|
|
397
313
|
|
|
@@ -414,25 +330,22 @@ class Driver(BaseDriver):
|
|
|
414
330
|
|
|
415
331
|
def write(self, name: str, value, **kw):
|
|
416
332
|
channel = kw.get('ch', 1)
|
|
417
|
-
# print(f'NS_DDS_v3 write: {name=}, {channel=}')
|
|
418
333
|
if name in {'Coefficient'}:
|
|
334
|
+
# data, f_list, numberOfPoints, phases, points, _ = get_coef(value, 4e9)
|
|
419
335
|
coef_info = value
|
|
420
336
|
self.chs.add(channel)
|
|
421
|
-
kernel, freq_map = self.
|
|
422
|
-
self.handle.set("
|
|
337
|
+
kernel, freq_map = self.generate_para(coef_info, channel)
|
|
338
|
+
self.handle.set("Program", kernel, channel)
|
|
423
339
|
self.handle.set("FreqList", freq_map, channel)
|
|
424
340
|
self.handle.set("TimeWidth", 2e-6, channel)
|
|
425
341
|
self.coef_cache.update({channel: coef_info})
|
|
342
|
+
# elif name in {'Waveform'} and isinstance(value, waveforms.Waveform):
|
|
343
|
+
# self.probe_da_wave[channel] = value
|
|
426
344
|
elif name in {
|
|
427
345
|
'CaptureMode', 'SystemSync', 'ResetTrig', 'TrigPeriod',
|
|
428
346
|
'TrigFrom'
|
|
429
347
|
}:
|
|
430
348
|
pass
|
|
431
|
-
elif name in {
|
|
432
|
-
'GenWave', 'Waveform'
|
|
433
|
-
} and isinstance(value, Waveform):
|
|
434
|
-
kernel_da = self.generate_out_program(value, channel)
|
|
435
|
-
self.handle.set("ProgramOUT", kernel_da, channel)
|
|
436
349
|
else:
|
|
437
350
|
if name in {"Shot"}:
|
|
438
351
|
self.shots = value
|
|
@@ -457,7 +370,7 @@ class Driver(BaseDriver):
|
|
|
457
370
|
|
|
458
371
|
|
|
459
372
|
if __name__ == '__main__':
|
|
460
|
-
co = {'start': 0.0, 'stop':
|
|
373
|
+
co = {'start': 0.0, 'stop': 8.605e-06, 'wList': [
|
|
461
374
|
{'Delta': 6796613333.333333, 'phase': -0.0, 'weight': 'square(8e-07) >> 4e-07', 'window': (0, 1024), 'w': None,
|
|
462
375
|
't0': 1.5e-08, 'phi': 2.4311851282940524, 'threshold': 9.645718574523926},
|
|
463
376
|
{'Delta': 6965129999.666667, 'phase': -0.0, 'weight': 'square(8e-07) >> 4e-07', 'window': (0, 1024), 'w': None,
|
|
@@ -477,72 +390,5 @@ if __name__ == '__main__':
|
|
|
477
390
|
{'Delta': 6965129999.666667, 'phase': -0.0, 'weight': 'square(8e-07) >> 4e-07', 'window': (0, 1024), 'w': None,
|
|
478
391
|
't0': 9.005e-06, 'phi': 2.4311851282940524, 'threshold': 9.645718574523926}
|
|
479
392
|
]}
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
import time
|
|
483
|
-
import waveforms as wf
|
|
484
|
-
from nsqdriver.NS_MCI import SHARED_DEVICE_MEM
|
|
485
|
-
|
|
486
|
-
SHARED_DEVICE_MEM.clear_ip()
|
|
487
|
-
_d = Driver('192.168.0.43', 300)
|
|
488
|
-
qsync = QSYNCDriver("192.168.0.43")
|
|
489
|
-
_d = Driver('192.168.0.228', 30)
|
|
490
|
-
_q = QSYNCDriver('192.168.0.228')
|
|
491
|
-
time.sleep(5)
|
|
492
|
-
_wave = wf.zero()
|
|
493
|
-
for _w in co['wList']:
|
|
494
|
-
t0 = _w['t0']
|
|
495
|
-
_wave += (wf.wave_eval(_w['weight']) * wf.cos(2 * np.pi * _w['Delta'])) >> t0
|
|
496
|
-
# _wave = _wave << 50e-9
|
|
497
|
-
_wave.start = 0
|
|
498
|
-
_wave.stop = 60e-6
|
|
499
|
-
|
|
500
|
-
_wave(np.linspace(0, 20e-6, int(20e-6 * 8e9)), frag=True)
|
|
501
|
-
|
|
502
|
-
wave = _wave.sample(8e9) / 3
|
|
503
|
-
_wave
|
|
504
|
-
|
|
505
|
-
for ch in range(3, 4):
|
|
506
|
-
_d.write('GenWave', _wave, ch=ch)
|
|
507
|
-
_d.write('Coefficient', co, ch=ch)
|
|
508
|
-
# res = _d.generate_para(co, 1)
|
|
509
|
-
_d.write("Coefficient", co, ch=2)
|
|
510
|
-
ch = 2
|
|
511
|
-
# wave = wf.cos(2*wf.pi*0.15e9)
|
|
512
|
-
# wave.start = 0
|
|
513
|
-
# wave.stop = 1e-6
|
|
514
|
-
|
|
515
|
-
_wave = waveforms.zero()
|
|
516
|
-
for _w in co['wList']:
|
|
517
|
-
t0 = _w['t0']
|
|
518
|
-
_wave += (waveforms.wave_eval(_w['weight']) * waveforms.cos(2 * np.pi * _w['Delta'])) >> t0
|
|
519
|
-
# _wave = _wave << 50e-9
|
|
520
|
-
_wave.start = 0
|
|
521
|
-
_wave.stop = co["stop"]
|
|
522
|
-
plt.plot(_wave.sample(8e9))
|
|
523
|
-
plt.show()
|
|
524
|
-
_d.write("GenWave", _wave, ch=2)
|
|
525
|
-
_d.set('CaptureMode', 1)
|
|
526
|
-
shots = 1024
|
|
527
|
-
qsync.set('Shot', shots)
|
|
528
|
-
_d.write('Shot', shots)
|
|
529
|
-
_d.set('StartCapture')
|
|
530
|
-
qsync.set('GenerateTrig', 400e-6)
|
|
531
|
-
time.sleep(400e-6 * shots + 0.5)
|
|
532
|
-
data = _d.get('TraceIQ', ch)
|
|
533
|
-
data = np.array(data)
|
|
534
|
-
print(data.shape)
|
|
535
|
-
data = data.reshape((shots, -1))
|
|
536
|
-
# qsync.set("Shot", 0xFFFFFFFF)
|
|
537
|
-
# qsync.set("GenerateTrig", 500e-6)
|
|
538
|
-
plt.figure()
|
|
539
|
-
plt.plot(data.mean(axis=0)[:])
|
|
540
|
-
plt.show()
|
|
541
|
-
_d.set('CaptureMode', 0)
|
|
542
|
-
_d.write("Coefficient", co, ch=2)
|
|
543
|
-
_d.write("GenWave", _wave, ch=2)
|
|
544
|
-
_d.set('StartCapture')
|
|
545
|
-
qsync.set('GenerateTrig', 40e-6)
|
|
546
|
-
data = _d.read("IQ", ch=2)
|
|
547
|
-
print(20 * np.log10(np.abs(data.mean(axis=0))))
|
|
548
|
-
pass
|
|
393
|
+
_d = Driver('127.0.0.1', 300)
|
|
394
|
+
res = _d.generate_para(co, 1)
|
nsqdriver/__init__.py
CHANGED
|
@@ -4,7 +4,7 @@ from .NS_CST import Driver as CSTDriver
|
|
|
4
4
|
from .compiler.ns_wave import InsChannel
|
|
5
5
|
from .compiler.py_wave_asm import nsw_config, AssemblyError
|
|
6
6
|
|
|
7
|
-
version_pack = (0,
|
|
7
|
+
version_pack = (0, 12, 11)
|
|
8
8
|
|
|
9
9
|
__version__ = '.'.join(str(_) for _ in version_pack)
|
|
10
10
|
__all__ = ['MCIDriver', 'QSYNCDriver', 'CSTDriver', 'InsChannel']
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nsqdriver
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.11
|
|
4
4
|
Summary: Q series measurement and control equipment driver interface
|
|
5
5
|
Home-page: https://g2hoyqcmh4.feishu.cn/wiki/Jgt1wxlKniveYQkqCgbcJHsMnoe
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
nsqdriver/NS_DDS_v3.py,sha256=
|
|
1
|
+
nsqdriver/NS_DDS_v3.py,sha256=dl78gjy0Ws41QSfi5kRk8tRZI9yMFxbjiX2K1Topotw,16564
|
|
2
2
|
nsqdriver/NS_CST.py,sha256=_QYCjg1YglIJ4YVmxvISqvy5rExWGlMhyrK9zYIRbRY,7877
|
|
3
3
|
nsqdriver/NS_MCI.py,sha256=cLvnEtqVnzlrKSbcVzXJOG72K4_RSGLGNjxW5KmPtMI,21903
|
|
4
4
|
nsqdriver/common.py,sha256=IHfShqgNN3THbe7KD7ICdfFY7JKC_kQj0_KJk-449gQ,499
|
|
5
|
-
nsqdriver/__init__.py,sha256=
|
|
5
|
+
nsqdriver/__init__.py,sha256=19HDjGlgkd2RElhpltVzn7E2dFvRNesFLPVINv4UP2Q,373
|
|
6
6
|
nsqdriver/NS_QSYNC.py,sha256=ZSOznM5PMlOm89rWAMiqVyZLWn3y0lTQp3d1z6LnkV0,27121
|
|
7
7
|
nsqdriver/nswave/kernel.pyi,sha256=Fs-_v2XT0UpRSSoogwIbejXna6uAfceYv41PyL2m-NM,1952
|
|
8
8
|
nsqdriver/nswave/_checkers.pyi,sha256=h_lMi6vWZ4SYe_5GDyOuYNbzL1nVDGvy4E-nAb9tzsk,1412
|
|
9
9
|
nsqdriver/nswave/_checkers.cpython-310-aarch64-linux-gnu.so,sha256=8c4qefipItMF6rbWtQBby1eBA1cE8eDedAJgMrUCPmA,240624
|
|
10
10
|
nsqdriver/nswave/_translate.cpython-310-aarch64-linux-gnu.so,sha256=E2S0rnPLJlKg0cpRQHg6ixmKg78TbgOQCgOhSvOTVHM,151096
|
|
11
|
-
nsqdriver/nswave/_ir.cpython-310-aarch64-linux-gnu.so,sha256=
|
|
11
|
+
nsqdriver/nswave/_ir.cpython-310-aarch64-linux-gnu.so,sha256=JxOwhCw9CZMz4Ixxz290mNLzumOkLDHpdXPtPgjpX50,438872
|
|
12
12
|
nsqdriver/nswave/_ir_pass.pyi,sha256=wYOesXdZnTlZ0Ph06VVP65uc6n-k8gywEkHaaSSyPmQ,282
|
|
13
|
-
nsqdriver/nswave/_functions.cpython-310-aarch64-linux-gnu.so,sha256=
|
|
13
|
+
nsqdriver/nswave/_functions.cpython-310-aarch64-linux-gnu.so,sha256=bj2Sqt3T3VV9JeaDBzDcaPfwKdQ2dSDFFphb-0Ds2Tk,139168
|
|
14
14
|
nsqdriver/nswave/_errors.pyi,sha256=pYt3VZxWgXWVNGvbQ3g6IwxItCmPcW_EfN3l1YfLk2o,640
|
|
15
15
|
nsqdriver/nswave/_ir.pyi,sha256=tC4iVf0dUOevZhwbCm77pDk87PbaIbhpNGHFamNdx5k,7130
|
|
16
16
|
nsqdriver/nswave/_rules.cpython-310-aarch64-linux-gnu.so,sha256=v3DkIGI8vs5rmtEHMcEkgJjxIPVtAhB1PJiSoafdHaQ,255592
|
|
@@ -23,17 +23,17 @@ nsqdriver/nswave/_asm.pyi,sha256=kayOim0cSLXwSCAAXkMu0-IsLusY95dTFORTNrHzFo8,274
|
|
|
23
23
|
nsqdriver/nswave/_ir_pass.cpython-310-aarch64-linux-gnu.so,sha256=YLiP9yUW9acbQ5iKOgQXVcX1O_K_nEeMIiqifFIJkZk,69392
|
|
24
24
|
nsqdriver/nswave/__init__.py,sha256=1-DljzsjzvnHRnD0tlpVTWSZjHtlCnP-yRirOJuG8Co,293
|
|
25
25
|
nsqdriver/nswave/_optimizations.pyi,sha256=y6ytCU8SSlD4mzXe-V2GjFrvpafumK388pgxHuxDBnI,492
|
|
26
|
-
nsqdriver/nswave/kernel.cpython-310-aarch64-linux-gnu.so,sha256=
|
|
26
|
+
nsqdriver/nswave/kernel.cpython-310-aarch64-linux-gnu.so,sha256=F11vcgIpz0ui80lO8cy4Wb2fImHxWRi3czU4qWxLK-A,364584
|
|
27
27
|
nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
nsqdriver/wrapper/ND_NSMCI.py,sha256=gTyrDObhbggl35V_q-kpDoPsfttIEnDFc6f0-pk_P0k,6288
|
|
29
29
|
nsqdriver/wrapper/AWG_ADC.py,sha256=ktQkORc8VZUFkNg6huC7DKIkvZyHYXRolQ2SAA89JnM,19199
|
|
30
|
-
nsqdriver/compiler/assembler.cpython-310-aarch64-linux-gnu.so,sha256=
|
|
30
|
+
nsqdriver/compiler/assembler.cpython-310-aarch64-linux-gnu.so,sha256=0HhmgGGSTCWnahADdfT65vmtKOP_oWay4dpQI1MXCi8,507472
|
|
31
31
|
nsqdriver/compiler/ns_wave.cpython-310-aarch64-linux-gnu.so,sha256=P3ZkQNpIsIjAR0EzDFvCoVHA52KzVmF_DmllxknbuiY,348736
|
|
32
32
|
nsqdriver/compiler/py_wave_asm.cpython-310-aarch64-linux-gnu.so,sha256=1MlIGX9RxUAXCCz1GzrRoAyDvxzh2tYY8bl7vXmpvtM,482560
|
|
33
33
|
nsqdriver/compiler/py_wave_asm.pyi,sha256=w2PWlBrns4tfDYjTLyOBfNgjjjVA_xzMJZYYyDPKce4,656
|
|
34
34
|
nsqdriver/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
35
|
nsqdriver/compiler/ns_wave.pyi,sha256=JQiE_9HqCzm00bS6c2JaaIXwt7xN_x9XXax-BBrE7-o,3824
|
|
36
|
-
nsqdriver-0.
|
|
37
|
-
nsqdriver-0.
|
|
38
|
-
nsqdriver-0.
|
|
39
|
-
nsqdriver-0.
|
|
36
|
+
nsqdriver-0.12.11.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
|
|
37
|
+
nsqdriver-0.12.11.dist-info/WHEEL,sha256=vh2oQsbkNC287YHyuh6hScUY27fsR8EWsF9NYy1tH2k,153
|
|
38
|
+
nsqdriver-0.12.11.dist-info/METADATA,sha256=5hsgga0-SYpUUY14UYHb9qNreofnFYqPhXrrnzjVgr8,4276
|
|
39
|
+
nsqdriver-0.12.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|