Commit Graph

7099 Commits

Author SHA1 Message Date
0131a8bef2 shuttler: cleanup 2023-10-06 14:55:51 +08:00
e63e2a2897 artiq_ddb_template: better satellite formatting 2023-10-06 13:01:57 +08:00
47fc640f75 applets: rename 'ctl' attribute to 'req' 2023-10-05 12:32:01 +08:00
da9f7cb58a applet extensions documentation 2023-10-05 12:32:01 +08:00
43926574da shuttler: remove sdm constants 2023-10-05 07:40:00 +08:00
4f3e58db52 gui.applets: add EntryArea 2023-10-04 15:35:52 +08:00
13271cea64
gui: remove copies of _WheelFilter and refactor with parameter 2023-10-04 13:35:01 +08:00
0e8fa8933f shuttler: init sigma-delta modulator 2023-09-30 11:51:43 +08:00
David Nadlinger
2eb89cb168 dashboard: Fix occasional "unexpected action" applet errors on startup
This turned out to be a race between the dashboard's dataset db
subscriber being initialised and the applet "embed" request, with
artiq.applet.simple not being able to handle the unexpected "mod"
message. We were only handling the other ordering outcome of this
race before.
2023-09-30 00:27:25 +01:00
a772dee1cc shuttler: change 0th order accumulator width
It now truncates the LSBs instead of the MSBs.
2023-09-29 10:09:39 +08:00
bafb85a274 custom_applet: change constructor, data_changed signatures 2023-09-28 10:35:14 +01:00
0e8aa33979 core: separate master target from compilation 2023-09-28 10:41:55 +08:00
fcf6c90ba2 ddb_template: support different satellite targets 2023-09-28 10:41:55 +08:00
0c1b572872 Shuttler: Correct spelling and grammar in docs 2023-09-27 17:29:16 +08:00
ab0d4c41c3 Shuttler: pdq, efc->shuttler pdq_words->coef_words 2023-09-27 17:29:16 +08:00
6eb81494c5 Allow using Python types in type annotations
This maps basic Python types (float, str, bool, np.int32, np.int64) as well as
some generics (list, tuple) to ARTIQ's own type instances.

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-09-26 23:46:43 +01:00
586d97c6cb Fix type annotations with mixed tuples
The type checker/inferer visits every node in an AST tree, including
function return annotations. This means for a function definition like

    def f() -> TTuple([TInt32, TBool]):
      ...

We attempt to type check the list [TInt32, TBool], which generates the
unification constraint builtins.TBool ~ builtins.TInt. This causes an
internal error due to compiler weirdness.

We can avoid this by just nulling-out the return annotation in the
embedding stage. The return type isn't actually used anywhere (it's
extracted via the inspect module instead), so this is entirely safe.

Arguments aren't affected by this, as we already nulled out the
annotation (see visit_arg in embedding.py).

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-09-26 23:43:01 +01:00
David Nadlinger
892b0eaca2 compiler: Fix crash on multiple types with the same name
The original fix in 21574bdfa9
was incomplete, as it only addressed the TInstance types, but
not their linked (typ.constructor) TConstructor instances.

This would (potentially among other issues) cause assertion
errors in llvm_ir_generator due to the wrong associated globals
being referenced; see added test case for an example that
previously caused such a crash.

Also modified the name collision detection from O(len(type_map))
(so quadratic overall in the number of custom types) to cache
names in sets for O(1) lookup.
2023-09-26 23:31:21 +01:00
eedac7cf71 Shuttler: Patch ddb entries in the example code 2023-09-26 12:20:26 +08:00
a61bbf5618 Shuttler: Replace ddb with json for the example 2023-09-26 12:20:26 +08:00
occheung
b7b8f0efa2
Generate coredevice entries for Shuttler (#2216)
* ddb: generate shuttler coredevice entries

* ddb: split-off all DRTIO-over-EEM peripherals

Only EFC uses DRTIO-over-EEM at this moment. It will be relevant to phaser-DRTIO in the future.

* ddb: generalize efc processing into drtio-over-eem peripherals

* ddb: check DRTIO role validity before processing
2023-09-26 09:44:21 +08:00
occheung
b52f253dbd
Simplify OOB reset by clock division (#2217)
* oob: simply logic by dividing into clk100

* replace clk100 clk ctrl with clk200 async reset

* fix comment (singular/plural)

* oob reset: invoke platform commands locally

* cleanup

* oob reset: add async reset import

* fix duplicated comment
2023-09-26 08:02:49 +08:00
occheung
73ab71f443
shuttler: add documentation 2023-09-25 17:47:47 +08:00
ab8247b3d7 Shuttler: Add coredevice example code for Shuttler
This example code:
    - Demonstrates the init flow for Shuttler
    - Blinks LED L0, L1
    - Demonstrates the real-time control of relay
    - Includes example fns for configuring the PDQ Output Channel in mu
2023-09-25 14:56:47 +08:00
36b3678853 satman: fix ddma reporting wrong destination 2023-09-22 10:25:37 +08:00
af77885dfc rtio_mgt: fix drtio reset on standalone 2023-09-22 09:46:40 +08:00
eb57b3b393 drtio: async messages become synchronous
They are now a reply for DestinationStatusRequest.
This prevents gateware errors and lost packets if the receiver is busy.
2023-09-21 16:30:00 +08:00
40ac2e03ab set_argument_value in applets 2023-09-21 16:26:11 +08:00
a2fbcb8bfd pre-dac gain/offsets: detect overflow & underflow
And output maximum / minimum DAC code when over/underflow
2023-09-19 18:49:20 +08:00
5c64eac8d2 relay: fix naming 2023-09-19 18:49:20 +08:00
477a7b693c remove debug for converter 2023-09-19 18:49:20 +08:00
f2694f25eb re-impl ADC using general access methods 2023-09-19 18:49:20 +08:00
9e1447d104 adc: implement standby & power-down/up 2023-09-19 18:49:20 +08:00
870020bc9f adc: use a generous upper bound 2023-09-19 18:49:20 +08:00
c2d136f669 shuttler: reorg SPI constants 2023-09-19 18:49:20 +08:00
06426e0ed9 shuttler: impl general reg access 2023-09-19 18:49:20 +08:00
e443e06e62 shuttler: remove adc calibrate debug lines 2023-09-19 18:49:20 +08:00
55150ebdbb shuttler: fix calibration channel target 2023-09-19 18:49:20 +08:00
eb08c55abe shuttler: add AFE drivers 2023-09-19 18:49:20 +08:00
67b6588d95 shuttler: implement gain & offset register access 2023-09-19 18:49:20 +08:00
1bb7e9ceef shuttler: support pre-DAC gain & offset 2023-09-19 18:49:20 +08:00
c02a14ba37 compiler: fix lit tests numpy.transpose error (#2190) 2023-09-18 22:11:46 +08:00
1f3b2ef645 dashboard.datasets: fix numpy objects in CreateEditDialog 2023-09-18 14:07:26 +08:00
372008cb66 Firmware: AD9117 Add check presence of clk comment 2023-09-18 13:04:51 +08:00
85abb1da2c Firmware: Set DACs RETIMER-CLK to Phase 1 Shuttler
- Intend to maintain the same pipeline latency across all DACs on Shuttler
- Force the RETIMER-CLK to be PHASE 1 on all DACs
- See Issue #2200 for details
2023-09-18 12:52:21 +08:00
David Nadlinger
9e5b62a6b1 gateware/targets/kasli: Only set DRTIO_ROLE in *Base classes [nfc]
kasli_generic uses the drtio_role setting to select the particular
*Generic class to use anyway.
2023-09-17 10:24:51 +08:00
David Nadlinger
22ab62324c gateware/targets/kasli: Set DRTIO_ROLE in {Master, Satellite}Base
These were introduced in 82bd913f63, and for Kasli only set from
the JSON description in the *Generic subclasses. Not all firmware
is built through that API, however, e.g. the CI system at the
University of Oxford. The missing attribute breaks artiq.build_soc.
2023-09-17 00:48:42 +01:00
David Nadlinger
fc74b78a45 dashboard: Make Ctrl-Alt-W close non-docked applets only
I had introduced this in f11aef74b as a means of quickly cleaning up
after e.g. an exploratory session where a lot of transient applets were
opened from ndscan, or for a dashboard that has been running for a while
with CCBs enabled but without anybody actually working there.

It turns out that one usually wants the few docked applets to stay open,
as they were necessarily arranged manually at some prior point. And as a
corollary to the latter, if one did want to close them as well, doing so
manually would not be too onerous either.
2023-09-16 23:47:23 +01:00
f01e654b9c gui.entries: fix RangeScan SpinBox size layouts 2023-09-16 16:06:45 +08:00
6df85478e4 scan: fix deprecated shuffle parameter in python 3.11 2023-09-13 12:24:44 +08:00
5c85cef0c2
Allow indexing tuples in kernel code
This only allows for indexing with a constant value (e.g. x[0]).

While slices would be possible to implement, it's not clear how to
preserve type inference here. The current typing rule is:

  Γ ⊢ x : τ  Γ ⊢ a : Int  Γ ⊢ b : Int
  ------------------------------------
             Γ ⊢ x[a:b] : τ

However, tuples would require a different typing rule, and so we'd need
to defer type inference if τ is a tyvar. I'm not confident that this
won't change behaviour, so we leave as-is for now.

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-09-12 14:43:38 +01:00
ccb140a929 Firmware: Add AD9117 DAC Startup Seq for shuttler 2023-09-11 15:07:47 +08:00
7c8073c1ce Shuttler: Add DAC Data Interface Gateware
- Add Parallel DDR Data Interface for DAC
- Add MMCM to generate phase shifted DDR Clk(45 degree phase shift by default)
- Connect dac_interface to Shuttler Module
2023-09-11 11:37:13 +08:00
b49fb841ce Firmware: EFC enables error led when going panic 2023-09-06 15:54:35 +08:00
a619c9f3c2 almazny: fix minor doc formatting 2023-09-06 14:12:09 +08:00
0188f31f3a i2c: fix doc formatting 2023-09-05 17:00:27 +08:00
4e770509db almazny: fix doc formatting 2023-09-05 17:00:27 +08:00
7f63bb322d disable DRTIO-over-EEM OSERDES until clock is stable
This asserts OOB reset on EFC.
2023-09-05 16:59:01 +08:00
5e5d671f4c kasli: add invoke order comments 2023-09-04 12:05:45 +08:00
98904ef4c3 kasli: construct DRTIO-EEM modules before adding RTIO 2023-09-04 12:05:45 +08:00
occheung
838cc80922
EFC: Implement OOB reset 2023-09-03 10:25:08 +08:00
Simon Renblad
904afe1632 tools: remove trim param 2023-09-01 20:06:19 +08:00
Simon Renblad
01d777c977
dashboard/datasets: fix CreateEditDialog datatype cast (#2176) 2023-09-01 13:59:17 +08:00
occheung
df99450faa
shuttler: add pdq-based waveform generator 2023-08-30 23:38:39 +08:00
ddb2b5e3a1 efc: add shuttler DAC parallel data interface pads 2023-08-30 10:25:39 +08:00
b56f7e429a
drtio: rename drtio_transceiver to gt_drtio 2023-08-28 04:50:46 +00:00
3452d0c423 efc: use variant (expected everywhere else) 2023-08-25 15:52:40 +08:00
2139456f80 firmware: skip clock switch for efc 2023-08-25 15:06:42 +08:00
a2a780a3f2 firmware: fix compilation warning 2023-08-25 15:06:02 +08:00
f5cbca9c29 kasli: implement DRTIO-over-EEM 2023-08-25 12:47:33 +08:00
737ff79ae7 eem: add efc 2023-08-25 12:01:17 +08:00
dc97d3aee6 drtio-eem: CONFIG_EEM_TRANSCEIVERS -> CONFIG_EEM_DRTIO_COUNT 2023-08-25 11:49:39 +08:00
5d38db19d0 drtio-eem: remove unnecessary rtio_rx clock domain 2023-08-25 11:32:28 +08:00
cd22e42cb4
efc: add DRTIO virtual LEDs
- EFC Gateware: Add virtual_leds to rtio
- EFC Firmware: io_expander is kept being serviced to update
  virtual_leds after init
2023-08-23 06:21:14 +00:00
b7bac8c9d8 EFC: Add SPI Gateware for Shuttler DAC
- Verified by a functional test reading back the rev register
2023-08-23 09:04:16 +08:00
e8818c812c satman: fix non-eem satellites failing to build 2023-08-22 16:32:59 +08:00
68dd0e029f targets: add efc target 2023-08-10 00:02:01 +00:00
occheung
64d3f867a0
add DRTIO-over-EEM PHY
for EFC and perhaps Phaser
2023-08-09 23:59:40 +00:00
df662c4262 flake: update llvmlite 2023-08-07 23:02:23 +08:00
David Nadlinger
efbae51f9d runtime: Validate ksupport ELF against hard-coded address ranges
This would have caught the reduction in header padding with LLD 14.
In theory, we could just get rid of the hard-coded kernel CPU address
ranges altogether and use ksupport.elf as the one source of truth; the
code already exists in dyld. The actual base address of the file would
still need to be forwarded to the kernel-side libunwind glue, though,
as there doesn't seem to be a clean way to get the equivalent of
KSUPPORT_HEADER_SIZE through the linker script. I have left this as-is
with the hard-coded KERNELCPU_… constants for now.
2023-08-07 10:10:38 +00:00
David Nadlinger
8acfa82586 ksupport: Remove unused sections from linker script [nfc]
We no longer build ksupport.ld in a position-independent fashion, and
the reference to the ld.bfd _GLOBAL_OFFSET_TABLE issue was just a
distraction
2023-08-07 10:10:38 +00:00
David Nadlinger
4d636ea593 Upgrade to LLD 14
Previous linker versions had inserted some zero padding bytes
between the ELF headers and the first section, but LLD 14 does
not anymore.

Hard-coding the offset of the first section in ksupport.elf
manually isn't ideal; we should probably parse the ELF program
headers instead when first setting up the kernel CPU.
2023-08-07 10:10:38 +00:00
Simon Renblad
c4259dab18
applets.simple: add kwargs to AppletControlRPC (#2155)
Co-authored-by: Simon Renblad <srenblad@m-labs.hk>
2023-08-05 11:38:07 +08:00
c46ac6f87d spi2: update set_config_mu doc 2023-08-04 09:22:57 +00:00
758b97426a Bootloader: SDRAM patch for EFC
- Modification of the CFG flag ensure EFC to initialize DDRPHY correctly
Note that Kasli and EFC share the same model of SDRAM
2023-08-02 02:18:45 +00:00
c206e92f29 Bootloader: Remove kusddrphy support for SDRAM
- Delete all the kusddrphy cfg flags and related code
2023-08-02 02:18:20 +00:00
cb547c8a46
efc: turn on power of FMC peripheral
- Add efc's io expander method
- Enable VADJ, P3V3_FMC in satman main during startup
2023-08-01 00:29:45 +00:00
linuswck
72a5231493
artiq_flash: add EEM FMC Carrier Board Support
- The code is derived from PR #2134 936f24f6bd
2023-07-25 11:14:19 +08:00
07714be8a7
jsonschema: add kasli_soc HW revision v1.1 2023-07-24 16:32:13 +08:00
361088ae72 tools: add trim argument to format funcs 2023-07-21 08:38:49 +00:00
6592b6ea1d artiq_client: change set_dataset with units 2023-07-21 08:15:39 +00:00
2fb085f1a2 datasets: change dataset value entry with units 2023-07-21 08:15:39 +00:00
a7569a0b2d tools: add scale_from_metadata helper func 2023-07-21 08:15:39 +00:00
4fbff1648c scientific_spinbox: rename precision to sig_figs 2023-07-19 07:01:24 +00:00
8f4c8387f9 entries: rename setPrecision to setSigFigs 2023-07-19 07:01:24 +00:00
59ad873831 examples: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
8589da0723 test_arguments: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
94e076e976 scan: rename ndecimals to precison 2023-07-18 08:02:42 +00:00
a0094aafbb entries: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
0befadee96 environment: rename ndecimals to precision 2023-07-18 08:02:42 +00:00
b3dc199e6a Fix panic when receiving empty strings in rpc calls
Receiving an empty string in an RPC call currently panics.

When `length` is zero, a call to the `alloc` function (as implemented in `artiq/firmware/runtime/session.rs`) returns a null pointer. Constructing a `CMutSlice` from a null pointer panics.
A `CMutSlice` consists of a pointer and the length. Rust's documentation of the `core::ptr` module states: "The canonical way to obtain a pointer that is valid for zero-sized accesses is `NonNull::dangling`."
This commits adds a check for the length of a string received in an RPC call. Only for lengths greater than zero a memory allocation is performed. For zero-length strings, a dangling pointer is used.

Test plan:
Invoke the following experiment, which returns an empty string over RPC:
```
class ReturnEmptyString(artiq.experiment.EnvExperiment):
    def build(self):
        self.core: Core = self.get_device("core")

    @kernel
    def run(self):
        x = self.do_rpc()
        print(x)

    @rpc
    def do_rpc(self) -> TStr:
        return ""
```

Signed-off-by: Sven Over (Oxford Ionics) <sven.over@oxionics.com>
2023-07-18 04:00:32 +00:00
d73889fb27 gui/experiments: cast Qt timestamp to int preventing float type error 2023-07-14 08:33:27 +00:00
068a2d1663 progress_bar: refactor data_changed 2023-07-12 08:28:28 +00:00
6c588b83d7 plot_xy_hist: refactor data_changed 2023-07-12 08:28:28 +00:00
c17f69a51b plot_xy: refactor data_changed 2023-07-12 08:28:28 +00:00
ac504069d2 plot_hist: refactor data_changed 2023-07-12 08:28:28 +00:00
b6a83904b5 image: refactor data_changed 2023-07-12 08:28:28 +00:00
25959d0cd6 big_number: refactor data_changed 2023-07-12 08:28:28 +00:00
5695e9f77e simple: refactor TitleApplet data_changed signature 2023-07-12 08:28:28 +00:00
fe0f6d8a2c simple: refactor SimpleApplet data_changed signature 2023-07-12 08:28:28 +00:00
d1f2727126 simple: refactor RPC client set_dataset 2023-07-12 08:28:28 +00:00
16a3ce274f applets: add metadata param to set_dataset 2023-07-12 08:28:28 +00:00
af7622d7ab simple: refactor IPC set_dataset 2023-07-12 08:28:28 +00:00
9a84575649
eem_7series: fix typo in 77293d5
Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-07-11 23:09:15 +00:00
faf85e815a datasets: add metadata to CreateEditDialog 2023-07-10 06:50:41 +00:00
3663a6b8e8 artiq_client: refactor set_dataset, show_datasets 2023-07-10 04:50:54 +00:00
91442e2914 browser: refactor upload_clicked for dataset metadata 2023-07-10 04:26:08 +00:00
50a6dac178 files: read dataset metadata from HDF5 2023-07-10 04:26:08 +00:00
5292a8de82 browser: add metadata param to short_format 2023-07-10 04:26:08 +00:00
48bc8a2ecc gtx_7series_init: GTH -> GTX (NFC) 2023-07-10 11:26:07 +08:00
93882eb3ce kasli-soc: fix of SYS CLK switch failure
Change initialization behaviour of GTX transceivers
--
Modify the config parms CPLL of GTX transceiver for PLL to lock correctly
Modify the enabling requirement of GTX input clock buffer IBUFDS_GTE2 so
    that it depends on GTX PLL locked signal instead of TX Init Done
Modify the GTX Init FSM so that BruteForceClock Aligner can reset GTX
    transceiver without resetting the GTX transceiver PLL

kasli-soc: fix of SYS CLK switch failure
Changed initialization of GTX transceivers.
Successful SYS CLK switching requires IBUFDS_GTE2 to be properly enabled and not disabled during GTX transceiver initialization.
For this reason, CPLL is not reset during GTX initialization and clock alignment.

kasli-soc: refractor fix of SYS CLK switch failure
Remove gtXxreset & cpllreset assertion and deassertion
The removed code does not affect the fix
2023-07-10 03:24:28 +00:00
373fe3dbe7 test_datasets: add metadata tests 2023-07-10 02:33:59 +00:00
1af98727b7 test_scheduler: refactor dataset metadata support 2023-07-10 02:33:59 +00:00
376f36c965 datasets: add metadata format param 2023-07-10 02:33:59 +00:00
e710d4badd databases: read and save metadata in lmdb 2023-07-10 02:33:59 +00:00
bfbe13e51b worker_db: write hdf5 dataset metadata 2023-07-10 02:33:59 +00:00
bf38fc8b0f tools: refactor short_format with metadata 2023-07-10 02:33:59 +00:00
337273acb6 environment: add get_dataset_metadata 2023-07-10 02:33:59 +00:00
748707e157 environment: add unit feature 2023-07-10 02:33:59 +00:00
Leon Riesebos
833fd8760e artiq_ddb_template: use the clk_div field
this field exists in the json schema but was not used.

Signed-off-by: Leon Riesebos <28567817+lriesebos@users.noreply.github.com>
2023-06-29 03:29:18 +00:00
77293d53e3 json: use schema defaults when applicable 2023-06-16 16:59:08 +08:00
a792bc5456 json: factor handling of deprecated 'base' 2023-06-16 16:32:42 +08:00
20d4712815 json: base -> drtio_role 2023-06-16 16:17:31 +08:00
82bd913f63
satellites: add kernel cpu 2023-06-16 15:44:31 +08:00
115415d120 Revert "flake: update to LLVM 14 and llvmlite 0.40.0+master"
This reverts commit c25c0bd55a.
2023-06-14 18:54:33 +08:00
d140c960bb
applets: implement dataset modification feature in big number applet 2023-06-12 17:52:46 +08:00
c25c0bd55a
flake: update to LLVM 14 and llvmlite 0.40.0+master 2023-06-09 13:25:08 +08:00
30ef8d8cb4
compiler: skip demangling list of empty names 2023-06-09 13:24:10 +08:00
7ad32d903a browser: add update method to dataset controller 2023-06-06 11:07:08 +00:00
bf46ce4a92 applets.simple: add mutate_dataset feature 2023-06-05 12:30:14 +00:00
150d325fc1 applets.simple: add append_to_dataset feature 2023-06-02 14:56:00 +00:00
c298ec4c2e applets: add update_dataset for dataset mods 2023-06-02 14:56:00 +00:00
29cb7e785d fix missing DIFF_TERM for Sampler and Mirny inputs 2023-06-02 17:21:00 +08:00
b97f6a9e44 bootloader: fix compilation warning without Ethernet 2023-06-02 10:48:55 +08:00
e0ebc1b21d applets: fix some asyncio problems 2023-05-31 22:56:48 +08:00
c6ddd3af17 applets: add controller and set_dataset API 2023-05-31 22:51:48 +08:00
Florian Agbuya
e12219e803
gui: add handler for applet set_dataset 2023-05-31 14:08:14 +00:00
c8dc2cbf09 browser: decouple dataset controller from dataset dock 2023-05-31 21:57:54 +08:00
c6b29b30fb Revert "flake: update to LLVM 14 and llvmlite 40"
This reverts commit 748969c21e.
2023-05-31 19:36:43 +08:00
d103cbea31 libboard_misoc: fix clang STB_WEAK warning 2023-05-31 18:59:51 +08:00
748969c21e
flake: update to LLVM 14 and llvmlite 40
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-05-30 16:47:59 +08:00
953a8a9555 master: merge master_config and master_terminate 2023-05-30 15:55:19 +08:00
444bab2186 gui: datasets_sub -> dataset_sub (nfc) 2023-05-30 15:44:30 +08:00
22e2514ce6 update configuration of IBUFDS_GTE2
Input clock is terminated internally with 50 Ohm on each leg and to 4/5 MGTAVCC.
2023-05-30 11:42:51 +08:00
a4895b591a analyzer: fix satellite behavior 2023-05-29 13:13:24 +08:00
b9c7905b20 nixpkgs 23.05 2023-05-27 17:17:36 +08:00
Charles Baynham
c2b0c97640 worker: Wait until datasets are written before quitting
Avoids a race condition in worker_impl.py where HDF5 dataset saving was
cut off before it finished for large datasets.
2023-05-23 21:48:56 +01:00
58cc3b8d0a kasli_generic: fix LooseVersion deprecation warning 2023-05-23 19:36:06 +08:00
ea9fe9b4e1
dma: fix off-by-one error in RawSlicer (#2090)
Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-05-23 11:15:39 +08:00
c1d6fd4bbe satman analyzer: remove forgotten comment 2023-05-19 11:39:14 +08:00
ab52748cac analyzer sat: disarm on drop 2023-05-19 11:39:14 +08:00
ddfe51e7ac analyzer: use transactions for data transmission 2023-05-19 11:39:14 +08:00
6c96033d41 analyzer: implement querying up satellites for data 2023-05-19 11:39:14 +08:00
0b03126038 satman: support analyzer packets 2023-05-19 11:39:14 +08:00
fdca1ab7fc drtioaux: add analyzer related messages 2023-05-19 11:39:14 +08:00
c36b6b3b65 master: only local rtio events in analyzer 2023-05-19 11:39:14 +08:00
c0ca27e6cf satellite: add rtio_analyzer, only for local rtio 2023-05-19 11:39:14 +08:00
3ca47537b8 Fix mismatched signatures for the wide interface
Lists are passed by-reference from python code, and so should be
&CSlice<_> not CSlice<_>.

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2023-05-19 10:18:06 +08:00
c53d333d46 almazny: fix parameter 2023-05-09 14:27:37 +08:00
5b94ce82e4 artiq_ddb_template: fix almazny 2023-05-09 14:27:15 +08:00
45cd438fb8 Almazny v1.2 support
Based on PR #2060 by Robert Jördens.
2023-05-09 12:54:48 +08:00
0e7e30d46e test: fix hardware testbench trying to write to ARTIQ_ROOT 2023-04-30 17:16:36 +08:00
d5a7755584 test: improve tmpdir names 2023-04-30 17:15:34 +08:00
3ff0be6540 PEP440 compliant version numbers 2023-04-30 16:55:49 +08:00
2c1438c4b9 coredevice: add missing pattern to sampler_hw_rev 2023-04-30 16:07:56 +08:00
5199bea353
master: emit warning if datasets will not be stored 2023-04-30 15:22:21 +08:00
a533f2a0cd rtio: SED, InputCollector use rio clock domain 2023-04-28 17:49:12 +08:00
0bf57f4ebd Fix ADF3536 having RTIO channel names
The channel in this device refers to a channel on the mirny, not an RTIO
channel.
2023-04-24 20:05:14 +08:00
4056168875 master: store datasets in LMDB (#1743) 2023-04-24 17:34:30 +08:00
9331911139
add tests for client submit functionality 2023-04-24 11:43:24 +08:00
2f35869eb1
satman: fix PMP and L2 flush 2023-04-20 15:45:15 +08:00
aed47d79ff
master: add terminate API 2023-04-18 15:03:06 +08:00
918d30b900 dma: pass "uses_ddma" for non-remote recordings 2023-04-18 12:35:37 +08:00
b5d9062ba9 Fix AD9914 channel map
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-04-17 09:23:30 +08:00
8984f5104a Move RTIO errors formatting to the session_proto
This would be closer to the artiq-zynq implementation

Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-04-17 09:23:30 +08:00
d0b8818688 Add 125 MHz from 80 MHz reference option to rtio clocking
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-04-13 14:57:24 +08:00
757c00b0fe afws_client: improve UX of common build errors 2023-04-08 16:50:15 +08:00
c1474c134a remove obsolete AFWS certificate 2023-04-07 16:09:47 +08:00
dc3db8bb66 afws_client: WebSocket, system certificates 2023-04-07 16:03:33 +08:00
97161a3df2 firmware: improve RTIO map error reporting 2023-04-04 11:27:31 +08:00
Ikko Eltociear Ashimine
7ba06bfe61 fix typo in comm_analyzer.py
error_occured -> error_occurred
occured -> occurred
2023-04-02 09:17:37 +08:00
b225717ddb
DDMA: documentation 2023-03-29 13:46:33 +08:00
696bda5c03 handle playback status in aux_transact 2023-03-28 14:18:29 +08:00
9150230ea7 dma: gate ddma features behind cfg(has_drtio) 2023-03-28 14:18:29 +08:00
e9a153b985
runtime: implement distributed DMA 2023-03-22 11:16:25 +08:00
David Nadlinger
8b1f38b015 worker_impl: Remove misleading update() from ExamineDatasetMgr [nfc]
`update(mod)` would be on the DatasetDB, not the manager. Rather,
modifications currently just fail due to e.g. `set(…)` not being
defined.
2023-03-20 13:20:40 +08:00
bbf80875fb
firmware: assume empty config records as removed (#2064)
This will return `KeyNotFound` for empty values, which are produced by `remove` operation

Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-03-13 18:18:26 +08:00
1ca09b9484
Add support for default route (IPv4 and IPv6) (#2059)
Based on code by Michael Birtwell <michael.birtwell@oxionics.com>
2023-03-13 17:29:10 +08:00
84e7515721
satman: distributed DMA support 2023-03-11 18:36:36 +08:00
a9360823b1 libproto: remove obsolete Jdac packets 2023-03-02 20:29:09 +08:00
1ec0abbfcf Add Urukul PLL bypass option to the JSON
Signed-off-by: Egor Savkin <es@m-labs.hk>
2023-03-01 19:05:16 +08:00
90a6fe1c35 satellite: add dma to gateware 2023-02-23 17:33:23 +08:00
d0437f5672 rtio core: fix minimum_coarse_timestamp 2023-02-22 10:44:25 +08:00
394138f00f
firmware: block session on startup kernel to be finished (#2046) 2023-01-19 16:46:53 +08:00
20e8f17b3d artiq_ddb_template: fix mistake in 18524911 2023-01-15 12:27:13 +08:00
57e87c9717 sampler: fix mistake in c591e7e3 2023-01-15 12:27:10 +08:00
b8968262d7 Merge branch 'syncrtio' 2023-01-12 16:44:54 +08:00
514ac953ce remove obsolete SI5324_AS_SYNTHESIZER config option 2023-01-12 13:01:08 +08:00
0a37a1a4c1 Merge branch 'syncrtio' 2023-01-12 12:58:19 +08:00
6d37d9d52c gui/state: fix asyncio loop management 2023-01-12 12:41:08 +08:00
5f77d4f5fa applets: fix asyncio loop management 2023-01-12 12:35:02 +08:00
2f289c552f remove unused import 2023-01-12 12:18:17 +08:00
9e8bb3c701 browser,dashboard: fix asyncio loop management 2023-01-12 12:17:16 +08:00
d872c3ab4d aqctl_moninj_proxy: fix asyncio loop management 2023-01-12 12:16:53 +08:00
f8d93813e9 aqctl_corelog: fix asyncio loop management 2023-01-12 10:52:26 +08:00
628b671433 update copyright year 2023-01-12 10:41:10 +08:00
daad3d263a master: commit missing part of 7fd6dead8 2023-01-12 10:39:53 +08:00
7fd6dead8f master: fix asyncio loop management 2023-01-11 18:46:54 +08:00
73a4ef89ec scheduler: make asyncio loop a keyword-only argument, like in other asyncio APIs 2023-01-11 18:45:35 +08:00
70edc9c5c6 test_write_underflow: decrease underflow delay 2023-01-11 12:02:51 +08:00
9042426872 echo test: add two more yields 2023-01-11 12:02:51 +08:00
cd860beda2 test_full_stack: restore missing check_ttls 2023-01-11 12:02:51 +08:00
627504b60e test_dma: remove redundant clock 2023-01-11 12:02:51 +08:00
c8ab6c1b2b test_worker: fix asyncio event loop management 2023-01-10 12:36:33 +08:00
a96bbd8508 test_scheduler: fix asyncio event loop management 2023-01-10 12:30:08 +08:00
6cfd1480a7 scheduler: support passing event loop 2023-01-10 12:26:24 +08:00
ea21f474a7 gateware: remove SAWG simulations 2023-01-09 18:37:19 +08:00
eb3742fb08 kc705: do not reset si5324 during clock switch 2023-01-09 18:18:21 +08:00
070fed755b
firmware: unify RTIO error message format 2023-01-09 16:13:05 +08:00
63f1a6d197 drtio: partially fix tests 2023-01-06 18:33:13 +08:00
7dafdfe2f7 artiq_flash: fix bit2bin 2023-01-06 18:24:00 +08:00
ec893222a4 rtio: remove support for async mode 2023-01-06 18:22:05 +08:00
573a895c1e remove RTIOClockMultiplier 2023-01-06 17:59:18 +08:00
cf2a4972f7 remove WRPLL 2023-01-06 17:53:11 +08:00
5da9794895 remove Sayma and Metlino support 2023-01-06 17:41:12 +08:00
3838dfc1d1
DRTIO: RTIO/SYS clock merge, KC705 2023-01-06 07:13:38 +08:00
1bf7188dec gui: update version in logo 2023-01-04 15:07:56 +08:00
8dc6902c23 AD9912: Add PLL bypass option (pll_en) like AD9910 2022-12-21 13:34:31 +08:00
Norman Krackow
dbb77b5356
artiq_sinara_tester: change mirny frequencies 2022-12-21 09:47:47 +08:00
1fc127c770 fix default version 2022-12-20 12:56:43 +08:00
David Nadlinger
88684dbd2a test_embedding: Fix up spelling in FIXME comment [nfc] 2022-12-19 01:02:51 +00:00
David Nadlinger
b9f13d48aa firmware: Fix object references in tuples
Sine 8740ec3dd, the alignment() information from
"run-time type information" (i.e. the Tag type) is also
used when sending tuples to the host.
2022-12-19 00:57:46 +00:00
17efc28dbe
DRTIO: RTIO/SYS clock merge 2022-12-17 15:39:54 +08:00
David Nadlinger
1e0102379b firmware: Rename si5324 crystal_{ref -> as_ckin2} [nfc]
This would have made the issue in the pre-740543d4e code
much more obvious (the config option by itself does not
have any effect on the choice of active reference input).
2022-12-17 02:17:12 +00:00
David Nadlinger
ceabeb8d84 firmware: Fix Si5324 initialisation for satellites
Commit 740543d4e2 had unintentionally broken DRTIO
satellites, as si5324::setup is also used there. This
imports setup_si5324_as_synthesizer() from artiq-zynq,
where the input selection was already explicitly done.

GitHub: Fixes #2028.
2022-12-17 02:17:06 +00:00
SingularitySurfer
8e476dd502 implement pca9539 and runtime io-expander chip selection
better comments and address translation

fix spurious };

unwrap init in runtime and return err instead of panic

propagate error

del unnecessary use

Signed-off-by: SingularitySurfer <Norman_Krackow@gmx.de>
2022-12-14 22:46:38 +08:00
David Nadlinger
874d298ceb master/scheduler: Unbreak submitting from repository
This is a fix-up to commit 2a58981822.
2022-12-13 14:58:23 +00:00
d75ade7be6 Fix rtiomap failure on device aliases
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-13 17:21:10 +08:00
2a58981822 Scheduler: replace relative path to absolute
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-09 21:43:36 +08:00
e80442811e
worker_impl: do not write results without rid (#2020) 2022-12-09 16:18:28 +08:00
12649720f1 browser: read artiq_version from HDF5 as string
Signed-off-by: Egor Savkin <es@m-labs.hk>
2022-12-07 16:39:19 +08:00
454ae39c5d
firmware: fix crash on exception with host message (#2017) 2022-12-07 10:41:43 +08:00
David Nadlinger
3c7a394eff runtime/rtio_clocking: Deduplicate/document input selection [nfc] 2022-12-04 04:21:44 +00:00
David Nadlinger
740543d4e2 firmware: Fix Kasli v2 runtime rtio_clock selection
SI5324_EXT_REF now only controls the (deprecated) fallbacks
for when the rtio_clock option is not set.
2022-12-04 02:23:38 +00:00
b2b559e73b
browser: tolerate missing HDF5 metadata 2022-12-02 16:30:58 +08:00
1852491102
add channel names to RTIO errors 2022-12-02 16:27:03 +08:00
c591e7e305
sampler: fix reference voltage of recent hardware 2022-12-02 10:45:40 +08:00
David Nadlinger
261dc6b933 firmware/runtime: Fix Ext0_Synth0_*to125 log messages 2022-12-02 01:37:56 +00:00
David Nadlinger
1abedba6dc coredevice/fastino: Fix stray punctuation [nfc] 2022-12-01 12:11:35 +00:00
aa2febca53
browser: fix dummy device creation failure on analyze 2022-12-01 17:45:02 +08:00
b8b6ce14cc Update smoltcp to 0.8.2
This fixes an issue where TCP issues are not retransmitted when only
some packets in a burst are acknowledged. This causes smoltcp to never
make progress and hang.

Signed-off-by: Jonathan Coates <jonathan.coates@oxionics.com>
2022-11-28 22:10:23 +08:00
Nico Pulido
88c5109627 language: check_unprocessed_arguments after constructing experiment
Signed-off-by: Nico Pulido-Mateo <pulido@iqo.uni-hannover.de>
2022-11-27 02:29:57 +00:00
David Nadlinger
dee154b35b compiler: Add missing sections to kernel linker script
This caused sporadic LoadFaults with LLD 14 and above, as they
happened to lay out the (not otherwise mentioned) GOT/PLT such
that they would overlap with the stack guard page.

LLD does support the --orphan-handling=error option, which
would be useful to avoid similar problems in the future, but
then we'd need to mention all the other misc sections
(symbol table, comments) in the linker script as well.

GitHub: Fixes #1975.
2022-11-24 16:57:31 +00:00
David Nadlinger
950b9ac4d6 firmware: More explicit panic message if stack guard is tripped
This should give even only mildly technical users a
chance to figure out what's going on, which empirically
is not the case for a plain Exception(LoadFault) without
further context.
2022-11-24 16:54:49 +00:00
6c47aac760
dashboard: merge create dataset and edit dataset features 2022-11-23 18:22:53 +08:00
f7f027001e
compiler: insert new lines into long synthesized code (#1986) 2022-11-23 12:10:32 +08:00
David Nadlinger
0b3c232819 language: Clarify error message for unprocessed arguments
"Unexpected argument(s)" would be another less ambiguous,
shorter phrasing.
2022-11-22 11:26:07 +00:00
d45f9b6950 ddb_template: propagate fastino log2_width setting
Signed-off-by: Etienne Wodey <etienne.wodey@aqt.eu>
2022-11-17 10:54:37 +08:00
404f24af6b compiler: set lld emulation explicitly 2022-11-15 11:20:06 +08:00
David Nadlinger
3d25092cbd firmware/rpc_proto: Remove unnecessary cast [nfc] 2022-11-14 22:50:38 +00:00
David Nadlinger
dbbe8e8ed4 firmware/rpc_proto: Fix typo breaking receiving of arrays
This was introduced in 8740ec3dd5.
2022-11-14 22:49:45 +00:00
David Nadlinger
8740ec3dd5 firmware/rpc_proto: Fix size/alignment calculation for structs with tail padding
Also factors out duplicate code for (de)serializing
elements of lists and ndarrays, and replaces the rounding
calculations by the well-known, much faster power-of-two-only
bit-twiddling version.

GitHub: Fixes #1934.
2022-11-14 11:37:45 +08:00
David Nadlinger
6caa779c74 firmware/ksupport: Include .gcc_except_table (LSDA)
For whatever reason, no language-specific unwind data
was generated for ksupport code so far, but rustc does
emit it for an upcoming refactoring.
2022-11-14 11:37:45 +08:00
David Nadlinger
4819016a3c firmware/ksupport: Document rpc_recv alignment requirements [nfc] 2022-11-14 11:37:45 +08:00
David Nadlinger
00a27b105a compiler: Extract maximum alignment from target data layout
In particular, i64/double are actually supposed to be aligned
to their size on RISC-V (at least according to the ELF psABI),
though it is unclear to me whether this actually caused any
issues.
2022-11-14 11:37:45 +08:00
David Nadlinger
beff15de5e compiler/targets: Fix refactoring leftover for native (host) target
It's unclear whether this actually caused any issues, or why this
wasn't done before (instead just setting the now-removed endianness
flag).
2022-11-14 11:37:45 +08:00
火焚 富良
defc69d9c3
compiler: fix const str/bytes handling (#1990) 2022-11-11 13:15:50 +08:00
火焚 富良
e2178f6c86
Fix GUI log issues introduced by #1950 2022-11-09 16:55:17 +08:00
ad000609ce simplify tsc with no rtio/sys clk distinction 2022-11-01 08:12:54 +08:00
af0b94bb34 rtio_clock: remove 150MHz support 2022-11-01 08:12:54 +08:00
5cd57e8688 rtio_clocking: switch clocks and reboot 2022-11-01 08:12:54 +08:00
f8eb695c0f dma test: no more rsys or rtio domains 2022-11-01 08:12:54 +08:00
458bd8a927 kasli_generic: remove rtio clockdomain reference 2022-11-01 08:12:54 +08:00
a6856a5e4a rtio: remove rtio clock, use sys instead 2022-11-01 08:12:54 +08:00
1eb87164be kasli: remove rtiocrg, use rtio/sys merge 2022-11-01 08:12:54 +08:00
f75ddf78b0 dashboard: restore connection/version message 2022-10-21 19:17:00 +08:00
e0b1098bc0 dashboard: remove incorrect moninj proxy message 2022-10-21 19:13:47 +08:00
e5c621751f
Merge pull request #1962 from quartiq/miqro
Support MIQRO mode for Phaser
2022-10-19 16:56:02 +02:00
07db770423 phaser: fix tester 2022-10-19 16:54:00 +02:00
eb7a0714b3 literal copy paste error 2022-10-19 16:44:44 +02:00
e15b5b50d8 phaser: tweak docs, relax slack 2022-10-19 16:42:03 +02:00
1820e1f715 phaser: cleanup 2022-10-19 16:25:33 +02:00
Fabian Schwartau
d5e267fadf Fixed two too low delay values in Phaser init
Signed-off-by: Fabian Schwartau <fabian@opencode.eu>
2022-10-19 15:45:45 +02:00
192cab887f afws_client: update 2022-10-07 11:39:36 +08:00
fanmingyu212
56e6b1428c llvm: change addr2line to symbolizer
`llvm-addr2line` is not included as part of the llvm binary package for Windows. This causes ARTIQ python compilations issues when conda is not used (so the `llvm-tools` conda package is not installed, which provides `llvm-addr2line` currently).
2022-10-04 09:35:56 +08:00
b895846322 Improve exception reports when exception can't be reconstructed
Artiq assumes that all exceptions raised by the kernel can be constructed with
a single string argument. This isn't always the case. Especially for
exceptions that originated in python and were propagated to the kernel over
rpc.

With out this change a mosek solver failure looks like:
```
ERROR    root:logging_tools.py:41 Terminating with exception (TypeError: __init__() missing 1 required positional argument: 'msg')
Traceback (most recent call last):
  File "/home/mb/.cache/pypoetry/virtualenvs/ion-transport-1-b41LI0-py3.8/lib/python3.8/site-packages/artiq/master/worker_impl.py", line 540, in main
    exp_inst.run()
  File "/home/mb/.cache/pypoetry/virtualenvs/ion-transport-1-b41LI0-py3.8/lib/python3.8/site-packages/artiq/test_tools/experiment.py", line 82, in wrapper
    meth()
  File "/home/mb/.cache/pypoetry/virtualenvs/ion-transport-1-b41LI0-py3.8/lib/python3.8/site-packages/artiq/language/core.py", line 54, in run_on_core
    return getattr(self, arg).run(run_on_core, ((self,) + k_args), k_kwargs)
  File "/home/mb/.cache/pypoetry/virtualenvs/ion-transport-1-b41LI0-py3.8/lib/python3.8/site-packages/artiq/coredevice/core.py", line 152, in run
    self.comm.serve(embedding_map, symbolizer, demangler)
  File "/home/mb/.cache/pypoetry/virtualenvs/ion-transport-1-b41LI0-py3.8/lib/python3.8/site-packages/artiq/coredevice/comm_kernel.py", line 720, in serve
    self._serve_exception(embedding_map, symbolizer, demangler)
  File "/home/mb/.cache/pypoetry/virtualenvs/ion-transport-1-b41LI0-py3.8/lib/python3.8/site-packages/artiq/coredevice/comm_kernel.py", line 699, in _serve_exception
    python_exn = python_exn_type(
TypeError: __init__() missing 1 required positional argument: 'msg'
```

With this change we get:
```
ERROR    root:logging_tools.py:41 Terminating with exception (RuntimeError: Exception type=<class 'mosek.Error'>, which couldn't be reconstructed (__init__() missing 1 required positional argument: 'msg'))
Core Device Traceback:
Traceback (most recent call first):
  File "/home/mb/oxionics/ion-transport/tests/test_end_to_end.py", line 280, in get_transport
    return self.seq.solve()
  File "/home/mb/oxionics/ion-transport/tests/test_end_to_end.py", line 288, in artiq_worker_test_end_to_end.TransportTestScan.run(..., ...) (RA=+0x2e4)
    self.seq.record(self.get_transport(1e-6 + 1e-7 * x))
mosek.Error(27): rescode.err_license_expired(1001): The license has expired.

End of Core Device Traceback
Traceback (most recent call last):
  File "/home/mb/oxionics/artiq/artiq/master/worker_impl.py", line 540, in main
    exp_inst.run()
  File "/home/mb/oxionics/artiq/artiq/test_tools/experiment.py", line 82, in wrapper
    meth()
  File "/home/mb/oxionics/artiq/artiq/language/core.py", line 54, in run_on_core
    return getattr(self, arg).run(run_on_core, ((self,) + k_args), k_kwargs)
  File "/home/mb/oxionics/artiq/artiq/coredevice/core.py", line 152, in run
    self.comm.serve(embedding_map, symbolizer, demangler)
  File "/home/mb/oxionics/artiq/artiq/coredevice/comm_kernel.py", line 732, in serve
    self._serve_exception(embedding_map, symbolizer, demangler)
  File "/home/mb/oxionics/artiq/artiq/coredevice/comm_kernel.py", line 714, in _serve_exception
    raise python_exn
RuntimeError: Exception type=<class 'mosek.Error'>, which couldn't be reconstructed (__init__() missing 1 required positional argument: 'msg')
```

Signed-off-by: Michael Birtwell <michael.birtwell@oxionics.com>
2022-09-26 20:25:13 +08:00
a1a4545ed4 docs: fix syntax 2022-09-23 16:22:21 +02:00
740f3d220b refine/fixes 2022-09-23 13:39:49 +00:00
513f9f00f3 miqro: document coredevice driver 2022-09-23 12:59:21 +00:00
5cfa8d9a42 add tester support, refactor gateware mode 2022-09-23 11:54:40 +00:00