bbn-q / qlab Goto Github PK
View Code? Open in Web Editor NEWMeasurement and control software for superconducting qubits.
License: Apache License 2.0
Measurement and control software for superconducting qubits.
License: Apache License 2.0
The problem is that if you have AWGs enabled that aren't used when calibrating a particular qubit, then you will either get an error in PulseCalibration.loadSequence()
or you will have bad/dummy data coming out of an AWG. We should disable those AWGs not used in calibrating a particular qubit.
See requests in #43 discussion.
It would be great if this were automatically rather than having to manually copy these values into the appropriate field.
Can probably do this by disabling the DAC clocks.
These parameters need to be inserted into the settings structure by default:
prevSettings.ExpParams = struct('digitalHomodyne', [], 'filter', [], 'softAvgs', 1);
prevSettings.deviceName = '';
prevSettings.exptName = '';
prevSettings.data_path = '';
Also, the experiment quickpicker has the same issue.
You get a permissions error when loading the library.
An experiment class should be composed of
Generally it should be much easier to create new experiments.
The StateFilter code is still using the "childFilter" architecture that is not valid anymore. There is corresponding fix needed in the experiment GUI: BBN-Q/PyQLab#70
Should explicitly write the loop points to file. If a loop is such that it can write just a start and step, it should do so.
Construct the PatternGen object from a settings structure.
Need to update driver to look at "channelDataFor" and only load the appropriate channels.
The analog channels are significantly delayed compared to the marker channels (I've seen a ~52 ns delay = 62 samples). To fix this we could put marker data into a FIFO buffer before it is output. Ideally, this buffer would have a size which is configurable with a register.
If a file named something like 0.h5
is present in a data folder, DataNamer.m will fail at parsing it with regexp.
Line 34 in b217fc4
I may submit a PR fixing this later today.
Find out if the bottleneck is the handshaking or the throughput of USB 1.0.
As reported by IBM and Colm, occasionally the PLL chip on the APS seems to lose lock with the reference. Symptoms include SSB frequencies and pulse widths being incorrect.
Next time this happens, we should check the status bits on the PLL chip. Does it think it is still locked up? If not, we can expose these bits to the driver and check them in init()
.
SingleShot
measurement filter returns empty array when X6
is put in digitizer mode. averager
mode is fine, though. Expected behavior??
Add a measAffineFile field to the MeasFilter settings. Then load the file in the constructor.
APS driver should "remember" what is currently in waveform memory.
Before version 1 we should max out the block RAM on the FPGA and push SSB off to a later version.
Not sure if the API allows this but we've wasted many hours with strange behaviour that we eventually track down to an unlocked LabBrick.
There are a couple ways to do this:
inverse
is used in QST_LSQ.m
here. Should this be inv
or \
? Maybe I'm missing a library
The BNC driver has few loose ends that need tidying up:
When loading, there is no link between data and the respective measurement channels
Convert pulse functions into pulse objects. Overload the disp operator to show humanized labels.
There is no current method for specifying the outputs on the marker channels of the APS. We would like to support two modes:
Changing the number of devices connected causes crash on enumerate.
Let's not re-invent the wheel. There is a robust format out there, so use it.
I've tried running calibratepulses and after it compiles the first 8- sequences and takes that data if fails with this error message:
Attempted to access data(0); index must be a positive integer or logical.
Error in PulseCalibration.analyzeRabiAmp (line 20)
if data(end/2) > offset
Error in PulseCalibration/PulseCalibrationDo (line 46)
[piAmpGuesses(1), offsetPhases(1)] = obj.analyzeRabiAmp(data(1:end/2));
Error in PulseCalibration/Do (line 207)
obj.PulseCalibrationDo();
Error in calibratePulses (line 32)
pulseCal.Do();
So it looks like it just isn't taking any data. I changed the ExpParams.measurements from M1 to the new M1_KernalIntegrator that we are using. Not sure if this is correct though.
Any Ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.