2
0
mirror of https://github.com/m-labs/artiq.git synced 2025-02-03 22:30:19 +08:00
Commit Graph

6604 Commits

Author SHA1 Message Date
25b1bbd10e Merge branch 'master' into nac3 2022-03-06 18:33:02 +08:00
b02abc2bf4 remove legacy versioning files 2022-03-06 18:30:08 +08:00
ac55da81d8 core: support precompilation of kernels 2022-03-06 18:25:18 +08:00
a7612b9736 artiq_sinara_tester: fix type error 2022-03-05 22:44:25 +08:00
d5806fc959 artiq_sinara_tester: add test_ttl_in NAC3TODO 2022-03-05 22:44:02 +08:00
c9fbb7024c artiq_flash: fix bit2bin 2022-03-05 22:43:25 +08:00
5e4ae4dfd9 ad9910: fix int64 operations 2022-03-05 22:43:01 +08:00
af1b6d8d33 embedding_map: avoid key 0
Object key 0 is reserved for builtin exceptions.
2022-03-05 10:28:53 +08:00
232f28c0e8 kern_hw: fix return type 2022-03-04 15:16:14 +08:00
51fa1b5e5e drtio: fix i2c switch 2022-03-04 15:16:14 +08:00
9d82f968f9 artiq_sinara_tester: port to NAC3 2022-03-03 17:07:27 +08:00
ba106de24f suservo: use bool for enable 2022-03-03 17:07:05 +08:00
b7d35446e2 almazny: port to NAC3 2022-03-03 16:24:07 +08:00
8fc0e5d3aa suservo: port to NAC3 2022-03-02 08:55:27 +08:00
be07481eb5 ad9910: port to NAC3 2022-03-01 18:48:26 +08:00
0256c91d53 ad9912: add missing NAC3TODO 2022-03-01 18:09:41 +08:00
a3b55b6164 dma: tentative port to NAC3
will not work due to missing context manager and possibly memory management issues
2022-03-01 17:44:48 +08:00
17ecd35530 test_i2c: fix for missing readback 2022-03-01 17:40:20 +08:00
156cf42f76 nac3devices: compile KasliEEPROM 2022-03-01 17:22:19 +08:00
fb0b806f61 kasli_i2c: port to NAC3 2022-03-01 17:22:06 +08:00
01e55f5731 i2c: port to NAC3 2022-03-01 17:21:54 +08:00
e6f26b5c74 Merge branch 'master' into nac3 2022-03-01 16:58:19 +08:00
a85b4d5f5e
I2C API for PCA9547 support (#1860) 2022-03-01 15:07:53 +08:00
5af22af5f6 examples/nac3devices: fix and reenable Phaser 2022-03-01 11:49:03 +08:00
ea55c29568 phaser: port to NAC3 2022-02-28 17:00:24 +08:00
a407007e0b fastino: port to NAC3 2022-02-28 13:34:55 +08:00
64a0c4b29a merge artiq.coredevice.runtime into comm_kernel 2022-02-28 12:04:46 +08:00
2e4233274f grabber: port to NAC3 2022-02-28 11:53:41 +08:00
bf8e188868 ad9914: port to NAC3 2022-02-28 10:22:29 +08:00
5572f223d1 hardware_testbench: port imports to NAC3 2022-02-26 18:53:35 +08:00
158d65c822 test_spi: port imports to NAC3 2022-02-26 18:53:12 +08:00
5acf008be3 test_rtio: port imports to NAC3 2022-02-26 18:52:56 +08:00
a606afa3bd test_phaser: port imports to NAC3 2022-02-26 18:52:40 +08:00
0e20058da3 test_performance: port imports and type annotations to NAC3 2022-02-26 18:52:15 +08:00
6eb1c4e138 sim: fix import for NAC3 2022-02-26 18:49:45 +08:00
9a05907b7a test_embedding: port imports and type annotations to NAC3 2022-02-26 18:47:59 +08:00
70531ae1e2 ad9910: port imports and type annotations to NAC3 2022-02-26 18:47:07 +08:00
2720bfa398 i2c: port syscalls to NAC3 2022-02-26 18:42:41 +08:00
645c4590b3 test: remove test_numpy (NAC3TODO) 2022-02-26 18:39:28 +08:00
d7c915ff7b test_cache: partially port to NAC3 2022-02-26 17:56:02 +08:00
bea7e952fa edge_counter: restore keyword arguments 2022-02-26 17:41:48 +08:00
7b02918a43 worker_impl: port to NAC3 2022-02-26 17:39:59 +08:00
2d5114f32d remove legacy compiler test 2022-02-26 16:45:12 +08:00
6388b82455 coredevice/cache: port to nac3 2022-02-26 16:28:17 +08:00
338bb189b4 dashboard: fix typo (#1858) 2022-02-26 08:58:03 +08:00
5db9bc9bd4 edge_counter: port to nac3 2022-02-26 08:55:08 +08:00
Leon Riesebos
c4292770f8
Kasli JSON description for SPI over DIO cards (#1800) 2022-02-26 07:36:00 +08:00
41c597a707 remove parts that won't initially be supported by nac3 2022-02-25 20:02:36 +08:00
404811cd5c Merge branch 'master' into nac3 2022-02-25 19:02:07 +08:00
2b918ac6f7 coredevice: merge pcf8574a into i2c 2022-02-25 19:01:14 +08:00
808f968617 examples/nac3devices: add sampler 2022-02-25 18:27:40 +08:00
3d66a6be5d sampler: port to nac3 2022-02-25 18:26:18 +08:00
464818da34 ad9912: exception with string is supported by nac3 2022-02-25 18:26:01 +08:00
1b80746f48 Remove outer_final
We don't need to know whether there's a outer finally block
that's already implicit in the current break and continue
target.

Signed-off-by: Michael Birtwell <michael.birtwell@oxionics.com>
2022-02-24 19:58:33 +08:00
2d6215158f Fix try/finally:while:try compilation
When we have a trys inside a loop then we want to make sure any
finallys are executed by break and continue inside this try. But
this shouldn't pull finallys defined outside the loop in to the
loop. This change resets the `outer_final` attribute when
visiting for and while loops so that this doesn't happen.

Signed-off-by: Michael Birtwell <michael.birtwell@oxionics.com>
2022-02-24 19:58:33 +08:00
f7b315d661 Merge branch 'master' into nac3 2022-02-23 11:07:26 +08:00
0da7b83176 runtime: add nac3 exception symbols 2022-02-23 11:04:53 +08:00
Steve Fan
ad656d1e53
dashboard: add device database reload action in context menu (#1853) 2022-02-22 16:18:27 +08:00
Mike Birtwell
a106ed0295
artiq_flash: don't try to make rtm_binary_dir if binary_dir unset (#1851)
Signed-off-by: Michael Birtwell <michael.birtwell@oxionics.com>
2022-02-18 18:54:17 +08:00
c8b9eed9c9 fastino: add comments about sideeffects on v0.1 2022-02-16 14:42:22 +00:00
08b65470cd fastino: robustify init()
* init() now also clear and resets more state including the interpolators.
  If not done, this PLL unlocks/locks may lead to random interpolator state
  on boot to which the CICs react badly.
* Use and expose `t_frame`
* Clarify implementation state of `read()`
2022-02-16 14:34:22 +00:00
e76df491f2 coredevice/exceptions: nac3 no longer breaks because of docstrings 2022-02-14 16:39:26 +08:00
7b56a72da0 Merge branch 'master' into nac3 2022-02-14 16:38:09 +08:00
65eab31f23 simplify board package format and artiq_flash 2022-02-14 15:54:17 +08:00
ec6c6dd988 add comments about preallocate_runtime_exception_names/EXCEPTION_ID_LOOKUP syncing 2022-02-13 13:48:05 +08:00
9f620491a9 coredevice: fix exception return handling 2022-02-13 13:32:50 +08:00
8e1ac8b844 Revert "core: remove legacy synthesized filename"
This reverts commit 92c1bc2149.
2022-02-13 13:32:20 +08:00
8aa8647ba8 coredevice: use NAC3 exception support 2022-02-13 12:51:23 +08:00
207ff918c7 coredevice: define ValueError locally
work around M-Labs/nac3#189
2022-02-13 12:50:22 +08:00
e8e1ccd4f1 coredevice/exceptions: port to NAC3 2022-02-13 12:49:09 +08:00
2616e1928d ttl: fix type error 2022-02-13 12:47:53 +08:00
92c1bc2149 core: remove legacy synthesized filename 2022-02-13 11:00:23 +08:00
f2f2e12b91 language: implemented embedding map and exception 2022-02-13 10:59:18 +08:00
b893d97d7b afws_client: add login successful message 2022-02-08 21:52:48 +08:00
b6f5ba8b5b afws_client: improve error message when output already exists 2022-02-08 21:26:12 +08:00
cc69482dad afws: nix requires full Git commit hash 2022-02-08 21:05:39 +08:00
833acb6925 add AFWS client 2022-02-07 14:28:00 +08:00
d5eec652ee tester: specify att with dB 2022-02-07 14:22:52 +08:00
a74196aa27 mirny: allow set attenuation with dB 2022-02-07 14:22:52 +08:00
Steve Fan
798a412c6f
comm_moninj: set keepalive for socket (#1843) 2022-02-04 13:51:19 +08:00
David Nadlinger
e45cb217be firmware: Explicitly use wrapping integer math in PRNGs
Patch by Hannah McLaughlin; apparently, the overflow actually
doesn't get checked/reported without `opt-level = 2` and
`lto = "thin"`.
2022-02-03 23:57:17 +00:00
ef25640937 compiler: fix noreturn attribute on __artiq_resume 2022-02-01 19:01:40 +08:00
Steve Fan
34008b7a21
Backport of "fixes alignment and size problem" from artiq-zynq (#1841) 2022-01-28 20:49:55 +08:00
93328ad8ee compiler: only allow constant exception messages
Otherwise, the exception message might be allocated on a stack, and will
become a dangling pointer when the exception is raised.
This will break some code that constructs exceptions with a function by
passing the message as a parameter because we cannot know if the parameter
is a constant. A way to mitigate this would be to defer this check to
LLVM IR codegen stage, and do inlining first for those exception
allocation functions, but I am not sure if we will guarantee inlining
for certain functions, and whether this is really needed.
2022-01-28 09:01:39 +08:00
Steve Fan
234a82aaa9
dashboard: prioritize min as part of default value resolution (#1839) 2022-01-27 17:45:09 +08:00
ee511758ce fix typo 2022-01-26 07:51:35 +08:00
ceceabbaf0 Merge branch 'master' into nac3 2022-01-26 07:25:20 +08:00
9d43762695 test: fixed lit tests
Note that because we changed exception representation from using string
names as exception identifier into using integer IDs, we need to
initialize the embedding map in order to allocate the integer IDs. Also,
we can no longer print the exception names and messages from the kernel,
we will need the host to map exception IDs to names, and may need the
host to map string IDs to actual strings (messages can be static strings
in the firmware, or strings stored in the host only).

We now check for exception IDs for lit tests, which are fixed because we
preallocated all builtin exceptions.
2022-01-26 07:16:54 +08:00
4132c450a5 firmware: runtime changes for exception
Ported from:
M-Labs/artiq-zynq#162

This includes new API for exception handling, some refactoring to avoid
code duplication for exception structures, and modified protocols to
send nested exceptions and avoid string allocation.
2022-01-26 07:16:54 +08:00
536b3e0c26 test: added test case for nested exceptions and try 2022-01-26 07:16:54 +08:00
ba34700798 coredevice: report nested exceptions 2022-01-26 07:16:54 +08:00
6ec003c1c9 compiler: fixed dead code eliminator
Instead of removing basic blocks with no predecessor, we will now mark
and remove all blocks that are unreachable from the entry block. This
can handle loops that are dead code. This is needed as we will now
generate more complicated code for exception handling which the old dead
code eliminator failed to handle.
2022-01-26 07:16:54 +08:00
da4ff44377 compiler: fixed try codegen and allocate exceptions
Exceptions are now allocated in the runtime when we raise the exception,
and destroyed when we exit the catch block. Nested exception and try
block is now supported, and should behave the same as in CPython.
Exceptions raised in except blocks will now unwind through finally
blocks, matching the behavior in CPython. Reraise will now preserve
backtrace.

Phi block LLVM IR generation is modified to handle landingpads, which
one ARTIQ IR will map to multiple LLVM IR.
2022-01-26 07:16:54 +08:00
4644e105b1 compiler: modified exception representation
Exception name is replaced by exception ID, which requires no
allocation. Other strings in the exception can now be 'host-only'
strings, which is represented by a CSlice with len = usize::MAX and
ptr = key, to avoid the need for allocation when raising exceptions
through RPC.
2022-01-26 07:16:54 +08:00
hartytp
715bff3ebf
Revert "Merge pull request #1544 from airwoodix/dataset-compression" (#1838)
* Revert "Merge pull request #1544 from airwoodix/dataset-compression"

This reverts commit 311a818a49, reversing
changes made to 7ffe4dc2e3.

* fix accidental revert of f42bea06a8
2022-01-25 10:02:15 +08:00
b452789f03 Merge branch 'master' into nac3 2022-01-19 21:07:10 +08:00
Steve Fan
3f812c4c2c
comm_kernel: fix RPC exception handling (#1801) 2022-01-12 15:23:37 +08:00
Steve Fan
de5892a00a
comm_kernel: check if elements are within bounds for RPC list (#1824) 2022-01-11 17:16:45 +08:00
Peter Drmota
4eee49f889 gateware.test.suservo: Fix tests for python >=3.7
Closes #1748
2022-01-11 17:16:09 +08:00
9eee0e5a7b gateware/suservo: fix profile no. in test
Follow-up/Test update for 9d49302.
2022-01-11 14:20:47 +08:00
d7dd75e833 comm_kernel: fix off-by-one error for numeric value range check 2022-01-11 10:13:42 +08:00
095fb9e333
add Almazny support (#1780) 2022-01-11 09:55:39 +08:00
4e3e0d129c firmware: fix compilation warning 2022-01-11 09:31:26 +08:00
12ee326fb4 firmware: fixed personality function 2022-01-11 09:30:19 +08:00
61349f9685 sinara_tester: fix outdated API 2022-01-10 17:23:28 +08:00
cea0a15e1e suservo: use default urukul profile 2022-01-10 16:21:39 +08:00
8b45f917d1 urukul: use default profile 2022-01-10 16:21:39 +08:00
6542b65db3 compiler: fixed exception codegen issues 2022-01-10 15:54:29 +08:00
9f90088fa6 compiler: generate appropriate landingpad IR
When used together with modified personality function, we got ~20%
performance improvement in exception unwinding with zynq.
2022-01-10 15:54:29 +08:00
5e1847e7c1 compiler: rename variables to retainedNodes
Part of the changes that was made to LLVM 6 by the time that LLVM 7 was released.
LLVM commit: 2c864551df
LLVM differential review: https://reviews.llvm.org/D45024
2022-01-10 11:28:37 +08:00
6f3c49528d compiler: revert cabe5ac
The lack of debug emitter causes #1821.
2022-01-10 11:26:03 +08:00
02555e48a0 update NAC3, use power operator 2022-01-09 11:45:10 +08:00
eaa1505c94 update documentation (#1820) 2022-01-08 11:55:52 +08:00
Leon Riesebos
f42bea06a8 worker_db: removed warning for writing a dataset that is also in the archive
Signed-off-by: Leon Riesebos <leon.riesebos@duke.edu>
2022-01-08 11:48:18 +08:00
9d493028e5 gateware/suservo: write to profile 7
Fixes #1817.
2022-01-07 16:41:19 +08:00
bbac477092 tools: fix importlib issue 2021-12-21 13:20:11 +08:00
088c3b470e update NAC3, use new Kernel type annotation 2021-12-20 17:56:40 +08:00
c0a7be0a90 llvm_ir: move stacksave before lltag alloca in build_rpc
Signed-off-by: Steve Fan <sf@m-labs.hk>
2021-12-19 00:07:07 +00:00
9e5e234af3 stop using explicit ProactorEventLoop on Windows
It is now the default in Python.
2021-12-14 20:06:38 +08:00
352317df11 test_dataset_db: remove (too much breakage on Windows) 2021-12-14 19:27:15 +08:00
a518963a47 test_dataset_db: disable tests broken on windows 2021-12-14 19:19:22 +08:00
37f14d94d0 test_dataset_db: fix for windows 2021-12-14 19:07:17 +08:00
Peter Drmota
7c664142a5
Simplified use of the AD9910 RAM feature (#1584)
* coredevice: Change Urukul default single-tone profile to 7

This allows using the internal profile control in RAM modulation mode (which always starts to play back at profile 0) without competing for the content of the profile 0 register used in single tone mode.

Signed-off-by: Peter Drmota <peter.drmota@physics.ox.ac.uk>

* ad9910/set_mu: comment on caveats when setting register

* ad9910: avoid unnecessary write/param

Credit: Solution proposed by @pmldrmota in https://github.com/m-labs/artiq/pull/1584#issuecomment-987774353

* revert 1064fdff (`set_mu()` comments)

158a7be7 had addressed this issue.

Co-authored-by: occheung <dc@m-labs.hk>
2021-12-13 23:44:03 +08:00
dad23b6981 coredevice/ad53xx: use len(list) 2021-12-09 12:40:01 +08:00
33a9ca2684 tools/file_import: use SourceFileLoader
This allows loading modules from files with extensions not in
importlib.machinery.SOURCE_SUFFIXES

Signed-off-by: Etienne Wodey <etienne.wodey@aqt.eu>
2021-12-09 11:47:04 +08:00
1def0d98c5
Merge branch 'master' into dataset-compression 2021-12-06 12:40:30 +08:00
Leon Riesebos
7ffe4dc2e3 coredevice: set default pow for ad9912 set_mu() 2021-12-06 12:34:55 +08:00
Leon Riesebos
9e3ea4e8ef coredevice: fixed type annotations for AD9910 2021-12-06 12:34:55 +08:00
31ac6881df update NAC3, restore original delays 2021-12-06 12:21:52 +08:00
e34f4cc99b language: add floor64 and ceil64 2021-12-04 20:13:00 +08:00
12c39aaaae coredevice/adf5356: use nac3 floor/ceil 2021-12-04 19:04:48 +08:00
2059fd375e language: add virtual 2021-12-04 19:03:39 +08:00
Steve Fan
4a6bea479a
Host report for async error upon kernel termination (#1791)
Closes #1644
2021-12-04 13:33:24 +08:00
7953f3d705 kc705: add drtio 100mhz clk switch 2021-12-03 17:19:11 +08:00
f281112779 satman: add 100mhz si5324 settings
siphaser: add calculated vco for 100mhz comment
2021-12-03 17:19:11 +08:00
eec3ea6589 siphaser: add support for 100mhz rtio 2021-12-03 17:19:11 +08:00
Etienne Wodey
9f830b86c0
kasli: add SED lanes count option to HW description JSON file (#1745)
Signed-off-by: Etienne Wodey <etienne.wodey@aqt.eu>
2021-12-03 17:05:35 +08:00
b8e7add785 language: remove deprecated set_dataset(..., save=...) 2021-12-01 22:41:34 +08:00
6a09b92fb3 examples/nac3devices: fix mirny clocking 2021-11-29 18:15:06 +08:00
b2f7022e0a examples/nac3devices: demonstrate new capabilities 2021-11-28 12:48:18 +08:00
e45c194c49 coredevice/adf5356: port to NAC3 2021-11-28 12:38:23 +08:00
David Nadlinger
c6039479e4 compiler: Add lit test for call site attributes [nfc] 2021-11-27 04:46:07 +00:00
David Nadlinger
63b5727a0c compiler: Also emit byval argument attributes at call sites
See previous commit.

GitHub: Fixes #1599.
2021-11-27 04:45:50 +00:00
David Nadlinger
9b01db3d11 compiler: Emit sret call site argument attributes
LLVM 6 seemed not to mind the mismatch, but more recent
versions produce miscompilations without this.

Needs llvmlite support (GitHub: numba/llvmlite#702).
2021-11-27 04:44:41 +00:00
6a433b2fce artiq_sinara_tester: test Urukul attenuator digital control 2021-11-24 18:57:16 +08:00
5800496425 coredevice/adf5356_reg: port to NAC3 2021-11-24 16:54:58 +08:00
9423428bb0 drtio: fix crc32 offset address 2021-11-24 12:00:56 +08:00
29f42ccd8a coredevice/mirny: port to NAC3 2021-11-23 17:13:43 +08:00
f5a5b7a22a examples: add nac3devices 2021-11-23 16:41:29 +08:00
3a6fcd069d remove old examples 2021-11-23 16:37:40 +08:00