Highlights:
"hw_rev": "v2.1"
) to use the correct conversion factor.aqctl_coreanalyzer_proxy
typically running on the master
machine, similarly to aqctl_moninj_proxy
.EntryArea
widget which allows argument entry widgets to be used in applets.quickstyle
option, EnumerationValue
entry widgets can now alternatively display
its choices as buttons that submit the experiment on click.NumberValue
already did in earlier ARTIQ versions.float
, or List[...]
) can now be used in type annotations on
kernel functions.artiq_coremgmt
can be used. This allows the user to inspect logs, change
configuration options, update the firmware, and reboot the device.Breaking changes:
SimpleApplet
now calls widget constructors with an additional ctl
parameter for control
operations, which includes dataset operations. It can be ignored if not needed. For an example usage,
refer to the big_number.py
applet.SimpleApplet
and TitleApplet
now call data_changed
with additional parameters. Derived applets
should change the function signature as below:# SimpleApplet def data_changed(self, value, metadata, persist, mods) # SimpleApplet (old version) def data_changed(self, data, mods) # TitleApplet def data_changed(self, value, metadata, persist, mods, title) # TitleApplet (old version) def data_changed(self, data, mods, title)
Accesses to the data argument should be replaced as below:
data[key][0] ==> persist[key] data[key][1] ==> value[key]
ndecimals
parameter in NumberValue
and Scannable
has been renamed to precision
.
Parameters after and including scale
in both constructors are now keyword-only.
Refer to the updated no_hardware/arguments_demo.py
example for current usage.almazny_hw_rev
in the JSON description.from sipyco import pyon import lmdb old = pyon.load_file("dataset_db.pyon") new = lmdb.open("dataset_db.mdb", subdir=False, map_size=2**30) with new.begin(write=True) as txn: for key, value in old.items(): txn.put(key.encode(), pyon.encode((value, {})).encode()) new.close()
artiq.wavesynth
has been removed.Highlights:
sif_sync
, exposed upconverter calibration
and enabling/disabling of upconverter LO & RF outputs, added helpers to align Phaser updates to the
RTIO timeline (get_next_frame_mu()
).get()
, get_mu()
, get_att()
, and get_att_mu()
functions added for AD9910 and AD9912.aqctl_moninj_proxy
controller.rtio_clock
supports multiple clocking settings, deprecating the usage
of compile-time options.artiq_ddb_template
generates edge-counter keys that start with the key of the corresponding
TTL device (e.g. ttl_0_counter
for the edge counter on TTL device ttl_0
).artiq_master
now has an --experiment-subdir
option to scan only a subdirectory of the
repository when building the list of experiments.scheduler.check_termination()
to test if the user
has requested graceful termination.artiq_coremgmt reboot
now reloads gateware as well, providing a more thorough and reliable
device reset (7-series FPGAs only).afws_client
(subscribers only). Self-compilation remains possible.Breaking changes:
target
parameter needs to be set to rv32ima
for Kasli 1.x and to rv32g
for all
other boards. Freshly generated device database templates already contain this update.Phaser.init()
now disables all Kasli-oscillators. This avoids full power RF output being
generated for some configurations.ADF5356.sync()
. This avoids the need of an extra delay before
calling ADF5356.init()
.set_dataset(..., save=...)
is no longer supported.PCA9548
I2C switch class was renamed to I2CSwitch
, to accommodate support for PCA9547,
and possibly other switches in future. Readback has been removed, and now only one channel per
switch is supported.Highlights:
+
, /
), matrix multiplication (@
) and
multidimensional indexing are supported; slices and views are not yet.numpy.sin
), both for scalar arguments and implicitly
broadcast across multidimensional arrays.AssertionError
s instead of aborting kernel
execution.ValueError
.voltage_to_mu()
ad9910
:0x3fff
(was 0x3ffe
before).set_mu()
that affects the ASF, FTW and POW registers
instead of the single-tone profile register.clk_sel
parameters:
"XO", "SMA", and "MMCX". Passing an integer is backwards compatible.run()
fails.panic_reset 1
now correctly resets the kernel CPU as well if
communication CPU panic occurs.type
parameter specifying the output as int
or float
--identifier-str
has been added to many targets to aid
with reproducible builds.Breaking changes:
artiq_netboot
has been moved to its own repository at
https://git.m-labs.hk/m-labs/artiq-netboot
quamash
has been replaced with qasync
.artiq.coredevice.suservo.SUServo
constructor now accepts two device name lists,
cpld_devices
and dds_devices
, rather than four individual arguments.artiq_client
determines which experiment to submit (consistent with artiq_run
).Highlights:
artiq.coredevice.edge_counter
for
the core device driver and artiq.gateware.rtio.phy.edge_counter
/
artiq.gateware.eem.DIO.add_std
for the gateware components.artiq.language.environment.HasEnvironment.append_to_dataset
.Breaking changes:
artiq.coredevice.ad9910.AD9910
and
artiq.coredevice.ad9914.AD9914
phase reference timestamp parameters
have been renamed to ref_time_mu
for consistency, as they are in machine
units.command
key set to facilitate sharing of devices between multiple
masters.-d/--dir
and --srcbuild
options of artiq_flash
has changed.aqctl_corelog
now filters log messages below the WARNING
level by default.
This behavior can be changed using the -v
and -q
options like the other
programs.-e/--experiment
switch of artiq_run
and artiq_compile
has been renamed -c/--class-name
.artiq_devtool
has been removed.artiq.protocols
has been moved to a separate package sipyco
.
artiq_rpctool
has been renamed to sipyco_rpctool
.The artiq.coredevice.ttl
drivers no longer track the timestamps of
submitted events in software, requiring the user to explicitly specify the
timeout for count()
/timestamp_mu()
. Support for sync()
has been dropped.
Now that RTIO has gained DMA support, there is no longer a reliable way for
the kernel CPU to track the individual events submitted on any one channel.
Requiring the timeouts to be specified explicitly ensures consistent API
behavior. To make this more convenient, the TTLInOut.gate_*()
functions
now return the cursor position at the end of the gate, e.g.:
ttl_input.count(ttl_input.gate_rising(100 * us))
In most situations – that is, unless the timeline cursor is rewound after the
respective gate_*()
call – simply passing now_mu()
is also a valid
upgrade path:
ttl_input.count(now_mu())
The latter might use up more timeline slack than necessary, though.
In place of TTL(In)Out.sync
, the new Core.wait_until_mu()
method can
be used, which blocks execution until the hardware RTIO cursor reaches the
given timestamp:
ttl_output.pulse(10 * us) self.core.wait_until_mu(now_mu())
RTIO outputs use a new architecture called Scalable Event Dispatcher (SED), which allows building systems with large number of RTIO channels more efficiently. From the user perspective, collision errors become asynchronous, and non- monotonic timestamps on any combination of channels are generally allowed (instead of producing sequence errors). RTIO inputs are not affected.
The DDS channel number for the NIST CLOCK target has changed.
The dashboard configuration files are now stored one-per-master, keyed by the server address argument and the notify port.
The master now has a --name
argument. If given, the dashboard is labelled
with this name rather than the server address.
artiq_flash
targets Kasli by default. Use -t kc705
to flash a KC705
instead.
artiq_flash -m/--adapter
has been changed to artiq_flash -V/--variant
.
The proxy
action of artiq_flash
is determined automatically and should
not be specified manually anymore.
kc705_dds
has been renamed kc705
.
The -H/--hw-adapter
option of kc705
has been renamed -V/--variant
.
SPI masters have been switched from misoc-spi to misoc-spi2. This affects
all out-of-tree RTIO core device drivers using those buses. See the various
commits on e.g. the ad53xx
driver for an example how to port from the old
to the new bus.
The ad5360
coredevice driver has been renamed to ad53xx
and the API
has changed to better support Zotino.
artiq.coredevice.dds
has been renamed to artiq.coredevice.ad9914
and
simplified. DDS batch mode is no longer supported. The core_dds
device
is no longer necessary.
The configuration entry startup_clock
is renamed rtio_clock
. Switching
clocks dynamically (i.e. without device restart) is no longer supported.
set_dataset(..., save=True)
has been renamed
set_dataset(..., archive=True)
.
On the AD9914 DDS, when switching to PHASE_MODE_CONTINUOUS
from another mode,
use the returned value of the last set_mu
call as the phase offset for
PHASE_MODE_CONTINUOUS
to avoid a phase discontinuity. This is no longer done
automatically. If one phase glitch when entering PHASE_MODE_CONTINUOUS
is not
an issue, this recommendation can be ignored.
No further notes.
No further notes.
No further notes.
No further notes.
No further notes.
No further notes.
--embed
option of applets is replaced with the environment variable
ARTIQ_APPLET_EMBED
. The GUI sets this enviroment variable itself and the
user simply needs to remove the --embed
argument.EnvExperiment
's prepare
calls prepare
for all its children.__getattr__
's returning RPC target methods are not supported anymore.
Controller driver classes must define all their methods intended for RPC as
members.archive=False
to get_dataset
.seconds_to_mu
and mu_to_seconds
have become methods of the core
device driver (use e.g. self.core.seconds_to_mu()
).int(a, width=b)
has been removed. Use int32(a)
and int64(a)
.kc705_dds
.artiq.coredevice.comm_tcp
has been renamed artiq.coredevice.comm_kernel
,
and Comm
has been renamed CommKernel
.analyze
raises an exception.LinearScan
and RandomScan
have been consolidated into RangeScan.device_db = `` at the beginning, and replace any PYON
identifiers (``true
, null
, ...) with their Python equivalents
(True
, None
...).aqctl_XXX
instead of XXX_controller
.comm
device has been folded into the core
device.
Move the "host" argument into the core
device, and remove the comm
device.aqctl_corelog
must be running to forward
those logs to the master. See the example device databases to see how to
instantiate this controller. Using artiq_session
ensures that a controller
manager is running simultaneously with the master.start_time
and run_time
are now stored as doubles of UNIX time,
rather than ints. The file names are still based on local time.No further notes.
No further notes.
No further notes.
No further notes.
No further notes.
No further notes.
The format of the influxdb pattern file is simplified. The procedure to
edit patterns is also changed to modifying the pattern file and calling:
artiq_rpctool.py ::1 3248 call scan_patterns
(or restarting the bridge)
The patterns can be converted to the new format using this code snippet:
from artiq.protocols import pyon patterns = pyon.load_file("influxdb_patterns.pyon") for p in patterns: print(p)
The "GUI" has been renamed the "dashboard".
When flashing NIST boards, use "-m nist_qcX" or "-m nist_clock" instead of just "-m qcX" or "-m clock" (#290).
Applet command lines now use templates (e.g. $python) instead of formats (e.g. {python}).
On Windows, GUI applications no longer open a console. For debugging purposes, the console messages can still be displayed by running the GUI applications this way:
python3.5 -m artiq.frontend.artiq_browser python3.5 -m artiq.frontend.artiq_dashboard
(you may need to replace python3.5 with python) Please always include the console output when reporting a GUI crash.
The result folders are formatted "%Y-%m-%d/%H instead of "%Y-%m-%d/%H-%M". (i.e. grouping by day and then by hour, instead of by day and then by minute)
The parent
keyword argument of HasEnvironment
(and EnvExperiment
)
has been replaced. Pass the parent as first argument instead.
During experiment examination (and a fortiori repository scan), the values of
all arguments are set to None
regardless of any default values supplied.
In the dashboard's experiment windows, partial or full argument recomputation takes into account the repository revision field.
By default, NumberValue
and Scannable
infer the scale from the unit
for common units.
By default, artiq_client keeps the current persist flag on the master.
GUI state files for the browser and the dashboard are stores in "standard"
locations for each operating system. Those are
~/.config/artiq/2/artiq_*.pyon
on Linux and
C:\Users\<username>\AppData\Local\m-labs\artiq\2\artiq_*.pyon
on
Windows 7.
The position of the time cursor is kept across experiments and RTIO resets are manual and explicit (inter-experiment seamless handover).
All integers manipulated by kernels are numpy integers (numpy.int32, numpy.int64). If you pass an integer as a RPC argument, the target function receives a numpy type.
No further notes.
No further notes.
No further notes.
datasets
.ndecimals
= 0, scale
= 1 and
step
is integer.Experiments (your code) should use from artiq.experiment import *
(and not from artiq import *
as previously)
Core device flash storage has moved due to increased runtime size. This requires reflashing the runtime and the flash storage filesystem image or erase and rewrite its entries.
RTIOCollisionError
has been renamed to RTIOCollision
the new API for DDS batches is:
with self.core_dds.batch: ...
with core_dds
a device of type artiq.coredevice.dds.CoreDDS
.
The dds_bus device should not be used anymore.
LinearScan now supports scanning from high to low. Accordingly,
its arguments min/max
have been renamed to start/stop
respectively.
Same for RandomScan (even though there direction matters little).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )