You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
Added
architecture system: platform and compilation strategy defaults are now built into OpenQL, preventing the need for users to copypaste configuration files from the tests directory
interface (C++ and Python) to compile cQASM 1.x
allow 'wait' and 'barrier' in JSON section 'gate_decomposition'
CC backend:
improved reporting on JSON semantic errors
added check for dimension of "instruments/qubits" against "instruments/ref_control_mode/control_bits"
added check for dimension of "instructions//cc/[signals,ref_signal]/value" against "instruments/ref_control_mode/control_bits"
added cross check of "instruments/ref_control_mode" against "instrument_definitions"
added support for "pragma/break" in JSON definition to define 'gate' that breaks out of loop
added support to distribute measurement results via DSM
added support for conditional gates
added compile option "--backend_cc_run_once"
added compile option "--backend_cc_verbose"
Changed
pass management: instead of a hardcoded compilation strategy, the strategy can be adjusted and fine-tuned manually
pass options: instead of doing everything with global options, global options were replaced with pass options as much as possible
most documentation is now generated from code and can be queried using API calls
scheduler resources are completely reworked to be made more generic
major internal refactoring and restructuring to facilitate the above two things
CC backend:
renamed JSON field "signal_ref" to "ref_signal"
renamed JSON field "ref_signals_type" to "signal_type"
changed JSON field "static_codeword_override" to be a vector with one element per qubit parameter. To edit a JSON file using Sublime, use Replace with Regular Expressions: find="static_codeword_override": ([0-9])+, replace="static_codeword_override": [\1]
adopted new module synchronization scheme ("seq_bar semantics", requires CC software >= v0.2.0, PycQED after commit 470df5b)
JSON field "instruction/type" no longer used by backend, use "instruction/cc/readout_mode" to flag measurement instructions
allow specification of 2 triggers in JSON field "control_modes/*/trigger_bits" to support dual-QWG
changed label in generated code from "mainLoop" to "mainLoop". Do not start kernel names with "" (this should be specified by the API)
removed initial 1 cycle (20 ns) delay at start of kernels (resulting from bundle start_cycle starting at 1)
correctly handle kernel names containing "_" in conjunction with looping (formerly duplicate labels could arise)
added "seq_out 0,1" to program start to allow tracing of actual program start
Removed
CC-light code generation, as the CC-light is being phased out in the lab, and its many passes were obstacles for pass management and refactoring
rotation optimization based on matrices; matrices in general were removed entirely because no one was using it
the commute variation pass, as it has been superseded by in-place commutations within the scheduler
the toffoli decomposition pass, as it wasn't really used; to decompose a toffoli gate, use generic platform-driven decomposition instead
the defunct fidelity estimation logic from metrics.cc; this may be added again later, but requires lots of cleanup and isn't currently in use
quantumsim and qsoverlay output; apparently this was no longer being used, and it was quite intertwined with the CC-light backend
Fixed
changed register used for FOR loop, so it doesn't clash with delay setting
fixed documentation for python setup and running tests
various miscellaneous bugs, dangling pointers, and memory leaks