slaclab / pysmurf

Other
2 stars 9 forks source link

Do not blindly assign resonances to same subband #658

Open dpdutcher opened 3 years ago

dpdutcher commented 3 years ago

Describe the problem

This issue references the change to one channel per subband with 512 subbands.

If two resonators are spaced by less than half the width of a subband (<1.2 MHz), they could be placed within the same subband, with the higher-frequency resonance then not receiving a channel assignment. There is not an opportunity to assign a different subband or choose which of the resonators does not get a channel assignment.

Below is an illustration of this occuring in a SO v3.2 umux chip. Shown is a find_freq measurement overplotted with the locations of resonators which have been labelled by their corresponding umux chip bondpad number. The two resonances on the left were both assigned to the red subband, with res56 receving a channel assignment and res60 not, and the same situation with the two resonances on the right.

image

This occured three times on this one umux chip, with resonator spacings of 0.76, 0.5, and 0.76 MHz. Another pair (not shown) had a spacing of 0.68MHz, and they were both assigned channels as a result of how they happened to line up with the subband boundaries.

Describe the solution you'd like

Could the subband assignment be done in different manner, e.g. attempt to place it in the subband to which it is closest, but if a resonator has already been assigned to that subband, then choose the next closest subband? For example, in the plot above res60 could be assigned to the blue subband, which is otherwise unoccupied.

At a minimum, it would be nice to be able to choose which resonance gets a channel assignment and which gets dropped, instead of always dropping the higher-frequency resonance.

(I am assuming that the switch to 512 subbands was done for other important reasons, and therefore a reversion to 128 subbands would not be considered.)

Additional details

With the current umux chips in SO, this is leading to a few percent yield hit that did not exist in the 4 channels per subband, 128 subband version of the s/w and f/w. The resulting (soft) requirement on minimum resonator spacing of ~1 MHz was an unexpected change for NIST fab, and one they are not happy about.

swh76 commented 3 years ago

@dpdutcher Thanks for pointing this out. Looks like we need to make the subband->channel assignment smarter for the newest firmware versions in pysmurf, exactly as you suggest. Fortunately this should be a straightforward software change. I'll try to get you something to try in the next week, and to summarize what I think the limitations are, if any.