Skip to content

Conversation

@alecandido
Copy link
Member

@alecandido alecandido commented Nov 14, 2025

Closes #1330

  • lift offsets to ports dictionary (from sequencer configurations)
  • no validation done for multiple channels targeting the same port
    • just check if the dictionary has already the relevant entries right before writing
      for id, ch in channels.items():
      n = PortAddress.from_path(ch.path).ports[0] - 1
      # first set all active channels to filter delay compensation by default
      # - for the FIR
      ports[f"out{n}_fir_config"] = "delay_comp"
    • this validation should be performed only for DcConfigs - multiplexed channels will target the same port, but they have no filters anyhow

@codecov
Copy link

codecov bot commented Nov 14, 2025

Codecov Report

❌ Patch coverage is 0% with 38 lines in your changes missing coverage. Please review.
✅ Project coverage is 40.05%. Comparing base (4bdbea6) to head (c94e70d).

Files with missing lines Patch % Lines
...c/qibolab/_core/instruments/qblox/config/module.py 0.00% 34 Missing ⚠️
src/qibolab/_core/instruments/qblox/cluster.py 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1331      +/-   ##
==========================================
- Coverage   40.21%   40.05%   -0.16%     
==========================================
  Files         114      114              
  Lines        5553     5575      +22     
==========================================
  Hits         2233     2233              
- Misses       3320     3342      +22     
Flag Coverage Δ
unittests 40.05% <0.00%> (-0.16%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@alecandido
Copy link
Member Author

alecandido commented Nov 14, 2025

Far from being complete, I'm reorganizing some exceptional cases (i.e. LOs and offsets) since they are not exceptional any longer.

Essentially, I organized all the configurations by Qblox object, either Module or Sequencer. Which still makes sense, since it is the way they are going to be uploaded, decided by the Qblox vendor.
However, there were some configurations which are not exactly fitting this organization: port-wise configurations.

LOs are per-physical port, and offsets as well. Though we have them in the channels (which, in principle, are logical - but only when multiplexed).
So, we need to put these configurations somewhere, and handled separately. Qblox is doing this at the module level, just prefixing them with out{n} (or out{n}_in{m}). This is what was being done already for the LOs. I will also move the offsets at this level. And eventually add the filters, since they are also acting on the physical port.

Sorry if I did not realize before about this further level of organization.

EDIT: notice that this will also be used for #1318, so that will be scheduled behind this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Qblox pre-distortions (simple)

2 participants