Fix error in schedule -> signal conversion for schedules with barrier instructions #203
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Closes #202.
This fixes an error in the schedule -> signal converter when the schedule contained a barrier instruction.
Details and comments
As described in #202, in the loop over instructions to construct the signals, there is a line
chan = inst.channel.name
, which assumes thatinst.channel
exists. Barrier instructions do not have achannel
attribute, hence the error. This PR modifies this line to conditionally setchan
based on whetherinst.channel
exists, and adds a test validating the correct parsing of a schedule with a barrier. Note that I've also removed thephase
andfreq
variables set at the same time aschan
, as they were only used in one subsequent line.For completeness, the important thing to note here is that nothing actually needs to be done to "support" barrier instructions:
block_to_schedule
convertsScheduleBlock
instances toSchedule
instances.Schedule
form all instructions have explicit absolute timing, so the barrier instructions in the schedule are actually redundant.