Subkernels now_mu() was not shared, and for running RTIO events you basically had to reset the core.
With this PR, the subkernel caller sends their current now_mu value that gets applied in a subkernel. There is of course a delay between retrieving the timestamp and actually running the subkernel, and it depends on whether or not the subkernel has to be preloaded, potential hops, main RTIO channel being used, carrier processing speed etc. that may have to be individually corrected with a delay.
As there is extra information (now_mu) passed through DRTIO and I don't really see a way of doing it without breaking backwards compatibility; should that be added to release-8 still?
Tested with Kasli-SoC (Zynq changes in appropriate repo) and 1.1 sat
Related Issue
Closes #2597
Type of Changes
Type
✓
:bug: Bug fix
✓
:scroll: Docs
Steps (Choose relevant, delete irrelevant before submitting)
All Pull Requests
[x] Use correct spelling and grammar.
Code Changes
[x] Test your changes or have someone test them. Mention what was tested and how.
Documentation Changes
[x] Check, test, and update the documentation in doc/. Build documentation (nix build .#artiq-manual-html; nix build .#artiq-manual-pdf) to ensure no errors.
Git Logistics
[x] Split your contribution into logically separate changes (git rebase --interactive). Merge/squash/fixup commits that just fix or amend previous commits. Remove unintended changes & cleanup. See tutorial.
[x] Write short & meaningful commit messages. Review each commit for messages (git show). Format:
topic: description. < 50 characters total.
Longer description. < 70 characters per line
Licensing
See copyright & licensing for more info.
ARTIQ files that do not contain a license header are copyrighted by M-Labs Limited and are licensed under LGPLv3+.
ARTIQ Pull Request
Description of Changes
Subkernels now_mu() was not shared, and for running RTIO events you basically had to reset the core.
With this PR, the subkernel caller sends their current
now_mu
value that gets applied in a subkernel. There is of course a delay between retrieving the timestamp and actually running the subkernel, and it depends on whether or not the subkernel has to be preloaded, potential hops, main RTIO channel being used, carrier processing speed etc. that may have to be individually corrected with adelay
.As there is extra information (
now_mu
) passed through DRTIO and I don't really see a way of doing it without breaking backwards compatibility; should that be added to release-8 still?Tested with Kasli-SoC (Zynq changes in appropriate repo) and 1.1 sat
Related Issue
Closes #2597
Type of Changes
Steps (Choose relevant, delete irrelevant before submitting)
All Pull Requests
Code Changes
Documentation Changes
nix build .#artiq-manual-html; nix build .#artiq-manual-pdf
) to ensure no errors.Git Logistics
git rebase --interactive
). Merge/squash/fixup commits that just fix or amend previous commits. Remove unintended changes & cleanup. See tutorial.[x] Write short & meaningful commit messages. Review each commit for messages (
git show
). Format:Licensing
See copyright & licensing for more info. ARTIQ files that do not contain a license header are copyrighted by M-Labs Limited and are licensed under LGPLv3+.