whitequark
db4d1878d3
compiler: remove debug print.
2018-05-25 09:37:18 +00:00
whitequark
223b984385
Fix non-exception-safe finally: handlers.
...
Fixes #1013 .
2018-05-25 04:23:32 +00:00
whitequark
fbf2c9a2fb
compiler: hoist loads of kernel invariants to function entry block.
...
Addresses intraprocedural cases of #1007 .
2018-05-25 02:18:13 +00:00
whitequark
12d1b9819c
compiler: handle direct calls to class methods.
...
Fixes #1005 .
2018-05-25 02:02:18 +00:00
Florent Kermarrec
bcb9c3d09d
firmware/serwb: move prbs_test outside of wait_init, add wishbone_test
2018-05-24 16:53:47 +02:00
Florent Kermarrec
bca2969957
sayma_rtm: add RTMScratch module to test remote Wishbone accesses
2018-05-24 16:53:10 +02:00
Florent Kermarrec
7642254d83
Merge branch 'master' of http://github.com/m-labs/artiq
2018-05-24 16:51:23 +02:00
Florent Kermarrec
353767bfdb
firmware/hmc830: add VCO subsystem register 6 programming (suggested by hartytp, tested on hardware without regression)
2018-05-24 16:49:49 +02:00
Sebastien Bourdeauducq
19efd8b13e
kasli: refactor EEM code
2018-05-24 18:41:54 +08:00
Florent Kermarrec
ad89c42acc
firmware/serwb: automatically adjust prbs test delay to prbs test cycles, increase prbs test cycles
2018-05-24 10:20:55 +02:00
Florent Kermarrec
19e5280824
firmware/ad9154: cleanup DAC init
...
- Split dac_setup in dac_reset, dat_detect & dac_setup.
- Only do one reset/detection.
- Configure before doing SYSREF scan (otherwise scan don't work at the first scan after power up).
- Do the spi_setup in each function.
2018-05-24 09:34:00 +02:00
Florent Kermarrec
fa3b48737b
firmware/hmc830: Added magic word to HMC830 init sequence (from gkasprow & marmeladapk)
2018-05-24 09:23:00 +02:00
Robert Jördens
9715f774ac
artiq_influxdb: controller (add ping())
2018-05-22 22:12:25 +00:00
whitequark
7aacc04f0c
language: scan functions are not supported on core device.
...
Closes #1009 .
2018-05-22 21:33:35 +00:00
whitequark
b55ce66a1b
Reinstate accidentally removed aqctl_corelog.
...
Closes #1008 .
2018-05-22 21:31:34 +00:00
whitequark
ce3c8fcd3e
compiler: add source location to SSA arguments.
...
Fixes #1006 .
2018-05-22 18:14:14 +00:00
Robert Jördens
fcd12e3472
suservo: work around #1007
2018-05-22 17:36:41 +00:00
Robert Jördens
9a86dfe70d
units: add mHz
2018-05-22 17:36:02 +00:00
Robert Jördens
4e863b32a1
coredevice: configurable initial backing state
...
Several core device drivers maintain a copy of some device state.
Since this copy is not transferred between experiments this backing state
can be different from device state when a new experiment is started.
This commit adds support for injecting initial backing state into
experiments via the device database and sets initial backing state where
known.
ad53xx (zotino): spi2 xfer_duration
novogorny: pgia gains
sampler: pgia gains, spi2 pgia and adc xfer_duration
suservo: pgia gains, spi2 pgia xfer_duration
urukul: cpld cfg (partial: rf_sw), attenuator register
spi2: div/length for xfer_duration
close #1003
2018-05-21 18:55:06 +02:00
Sebastien Bourdeauducq
4e5fe672e7
kasli: add tester target
2018-05-21 17:43:39 +08:00
Sebastien Bourdeauducq
2e6b81d59a
kasli_tester: reset core device
2018-05-21 15:35:29 +08:00
Sebastien Bourdeauducq
8513f0b0d4
minor cleanup
2018-05-21 15:35:00 +08:00
whitequark
9b4ad8b5af
compiler: implement local variable demotion.
2018-05-19 17:05:34 +00:00
whitequark
fd110e9848
compiler: sort predecessors in IR dump output.
...
Makes diffs more useful.
2018-05-19 17:02:08 +00:00
whitequark
dc1c4ebf1d
compiler: use ARTIQ_IR_NO_LOC variable to control IR dump output.
...
Useful e.g. in tests or for running diff on irgen output.
2018-05-19 17:02:08 +00:00
whitequark
21a0f26cd1
compiler: do not emit nonstandard !unconditionally* LLVM metadata.
...
This metadata was added by an LLVM patch that was removed because
it was unsound.
2018-05-19 16:58:03 +00:00
Sebastien Bourdeauducq
f953bee79e
kasli_test: add RF switch control
2018-05-18 23:48:29 +08:00
Sebastien Bourdeauducq
f457b59985
kasli_tester: bail out when run from ARTIQ master
2018-05-18 23:30:52 +08:00
Sebastien Bourdeauducq
3cbcb3bff6
move mitll, sysu and ustc device_dbs to kasli_basic
2018-05-18 23:20:40 +08:00
Sebastien Bourdeauducq
bdfd993818
kasli_tester: add Urukul support
2018-05-18 23:18:03 +08:00
Sebastien Bourdeauducq
72aef5799e
kasli/ustc: use TTLOut
2018-05-18 22:55:28 +08:00
Sebastien Bourdeauducq
9a4408a570
add Kasli TTL tester
2018-05-18 22:52:53 +08:00
Sebastien Bourdeauducq
b10d3ee4b4
make RTIO clock switch optional and simplify
...
Kasli no longer has an internal RTIO clock.
Switching clocks dynamically is no longer supported.
2018-05-18 17:41:34 +08:00
Sebastien Bourdeauducq
8a988d0feb
kasli: remove leftover debug print
2018-05-18 17:25:23 +08:00
Sebastien Bourdeauducq
37bd0c2566
kasli: add USTC target
2018-05-18 16:15:07 +08:00
Sebastien Bourdeauducq
73f8e61478
kasli_sysu: fix TTL directions in example device_db
2018-05-18 16:13:50 +08:00
Sebastien Bourdeauducq
6476219296
frontend: fix permissions
2018-05-18 00:10:46 +08:00
Robert Jördens
bfff755295
urukul: do IO_RST also when blind
2018-05-17 14:48:49 +00:00
whitequark
5744d97d59
firmware: adjust backtrace addresses correctly.
2018-05-17 08:13:55 +00:00
Sebastien Bourdeauducq
d4f074b1e1
firmware: fix Allaki addressing. Closes #993
2018-05-17 16:02:21 +08:00
whitequark
3b61b7c30b
compiler: fix tests after 4d06c1d8
.
2018-05-16 21:53:53 +00:00
whitequark
31c6c79204
firmware: implement an edge profiler.
...
It doesn't work extremely well, and the results can be somewhat
confusing, and it needs a libunwind patch, but it's the best I could
do and it seems still useful.
2018-05-16 21:53:53 +00:00
Robert Jördens
99f7672c79
ad53xx: tweak spi readback
2018-05-16 19:08:27 +02:00
Sebastien Bourdeauducq
a640041844
firmware: improve ad9154/hmc830/hmc7043 messaging
2018-05-16 23:15:17 +08:00
Sebastien Bourdeauducq
fedf7f0c87
firmware/ad9154: cleanup sysref scan and run everytime
2018-05-16 23:01:19 +08:00
Sebastien Bourdeauducq
1364cd2948
firmware/hmc830_7043: break out HMC830 SPI mode selection
2018-05-16 22:46:45 +08:00
Sebastien Bourdeauducq
0aadd3a361
firmware/hmc830_7043: improve messaging
2018-05-16 22:46:45 +08:00
whitequark
4d06c1d84b
coredevice.CommKernel: modernize. NFC.
2018-05-16 14:40:14 +00:00
whitequark
ca93b94aea
firmware: move config requests to management protocol.
...
They were only in session protocol because of historical reasons.
2018-05-16 14:32:49 +00:00
whitequark
a39f8d6634
artiq_devtool: use CommMgmt instead of shelling out to artiq_coremgmt.
...
(Which no longer exists.)
This also fixes `artiq_devtool hotswap` to work without
an `artiq_devtool connect` running in background.
2018-05-16 14:08:32 +00:00
whitequark
d446a3293e
frontend: merge core{config,log,boot,debug,profile} into coremgmt.
2018-05-16 14:08:32 +00:00
Florent Kermarrec
f77bcbebb5
serwb/test_serwb_core: fix
2018-05-16 08:34:53 +02:00
Florent Kermarrec
77fc5c599f
serwb/test: update
2018-05-15 23:52:58 +02:00
Florent Kermarrec
3873d09692
serwb: rewrite high-speed phys by splitting clocking/tx/rx, scrambling is now always enabled.
2018-05-15 23:52:41 +02:00
Florent Kermarrec
f8a9dd930b
serwb/genphy: add device parameter (not used here, but this way all the phys share the same parameters), scrambling is also now always enabled.
2018-05-15 23:51:14 +02:00
Florent Kermarrec
2c627cd061
serwb/scrambler: simplify and set scrambler input data to 0 when sink.stb == 0
2018-05-15 23:49:17 +02:00
Florent Kermarrec
7fe49a78d2
firmware/runtime/session: fix compilation when no rtio core
2018-05-15 23:47:47 +02:00
whitequark
8128a814f6
firmware: update dependencies.
2018-05-15 18:17:32 +00:00
whitequark
1b0384c513
firmware: fix satman build.
2018-05-15 16:35:05 +00:00
whitequark
07b713fdad
firmware: use upstream log_buffer.
2018-05-15 15:19:20 +00:00
whitequark
9f5b76253c
firmware: remove some unnecessary unwraps.
2018-05-15 15:05:19 +00:00
whitequark
e5796e26e1
firmware: remove unused #![feature(untagged_unions)].
2018-05-15 15:05:19 +00:00
whitequark
b54926134c
firmware: update the signature of #[lang="panic_fmt"].
2018-05-15 15:05:19 +00:00
Florent Kermarrec
c18a73d45f
sayma_amc/rtm: use new serwb low-speed phy
2018-05-15 16:40:50 +02:00
Florent Kermarrec
913d1e8e12
serwb: add generic low-speed phy (125Mhz linerate, same phy for ultrascale/7-series)
2018-05-15 16:39:39 +02:00
Florent Kermarrec
520aade8fe
serwb/scrambler: cleanup/fix potential bug
2018-05-15 16:30:52 +02:00
whitequark
9347f6e00c
firmware: use a dedicated error type in the scheduler.
...
After this commit, error handling does not normally allocate
(session::Error::{Load,Unexpected} still allocate, but those two
are very rare).
Good riddance to libstd_artiq.
2018-05-15 14:19:44 +00:00
whitequark
479cb9a857
firmware: use dedicated error types for every protocol and thread.
...
Good riddance to io::Error::Unrecognized.
2018-05-15 13:27:23 +00:00
whitequark
514eab3d39
Update Rust to 1.26.0.
2018-05-15 12:47:51 +00:00
whitequark
26faaad2b7
firmware: remove io::Result<T, E> in favor of Result<T, impl Fail>.
...
This doesn't yet use impl Fail since std_artiq::io::Error doesn't
impl it.
2018-05-15 08:29:03 +00:00
whitequark
140ca729aa
firmware: rename io::Error::{UnexpectedEof→UnexpectedEnd}.
...
We don't even have files.
2018-05-15 08:27:45 +00:00
whitequark
ce0593315b
firmware: move {ProtoRead,ProtoWrite} to the root of libio.
2018-05-15 08:16:09 +00:00
whitequark
4416c04ae1
firmware: use the failure crate in libio.
2018-05-15 07:40:13 +00:00
whitequark
9e8f8bb669
firmware: extract io::Cursor into its own file.
...
Also remove unused io::CursorError.
2018-05-15 06:24:04 +00:00
whitequark
a4ab236af3
firmware: simplify some `use`s.
2018-05-14 19:24:14 +00:00
whitequark
d93aa13fd6
firmware: use upstream compiler_builtins again.
...
I've fixed i128 in LLVM, so there is no need in our fork anymore.
2018-05-14 19:11:57 +00:00
whitequark
5ead27f2e1
firmware: eliminate uses of std_artiq::io::{Read,Write} from runtime.
2018-05-14 19:11:57 +00:00
whitequark
cf33ba748d
firmware: eliminate non-io uses of std_artiq from runtime.
...
Just replace these with references to alloc.
2018-05-14 19:11:57 +00:00
Robert Jördens
a100c73dfe
suservo: support pure-I
2018-05-14 18:48:27 +00:00
whitequark
ae50196186
firmware: rename libproto to libproto_artiq.
...
libproto_artiq only has ARTIQ-specific protocols.
2018-05-14 18:09:44 +00:00
whitequark
02b8426f60
firmware: rename libboard to libboard_misoc.
...
By analogy with libbuild_misoc. Hopefully one day it actually gets
moved to misoc...
2018-05-14 18:09:44 +00:00
whitequark
1ff42683d9
firmware: merge libamp into libboard_artiq.
...
All gateware interfaces live in libboard_artiq, but libamp predates
libboard_artiq.
2018-05-14 17:33:25 +00:00
whitequark
764386c9e3
firmware: split libdrtioaux into libproto and libboard_artiq modules.
...
All other protocol code lives in libproto, and all other gateware
interfaces live in libboard_artiq.
2018-05-14 17:26:59 +00:00
whitequark
6a10d54432
firmware: migrate rpc_proto to new libio.
...
This closes an old and horrible issue in that some code in ksupport
may implicitly try to allocate and we'll never know until it crashes
at runtime inside liballoc_stub.
This also removes liballoc_stub.
This also removes ReadExt and WriteExt from libproto.
Hooray!
2018-05-14 17:26:59 +00:00
whitequark
9a1bd66d2c
compiler: add test for int64(round(1.0)).
2018-05-14 15:57:27 +00:00
Sebastien Bourdeauducq
e121a81f21
ad9914: fix frequency_to_xftw and xftw_to_frequency
2018-05-14 23:49:00 +08:00
Sebastien Bourdeauducq
80df86f700
ad9914: set_mu_x -> set_x_mu
2018-05-14 23:49:00 +08:00
whitequark
09617c9f5e
firmware: migrate session_proto to new libio.
2018-05-14 15:17:32 +00:00
whitequark
e9c88e32e6
firmware: migrate moninj_proto to new libio.
2018-05-14 15:17:32 +00:00
whitequark
e292c8ab65
firmware: migrate mgmt_proto to new libio.
2018-05-14 15:17:32 +00:00
Robert Jördens
0c1caf0744
suservo: clean up and beautify example
2018-05-14 15:22:47 +02:00
Robert Jördens
4ddb29fa02
suservo: document class arguments
2018-05-14 15:22:47 +02:00
whitequark
976bb5e935
firmware: migrate analyzer_proto to new libio.
2018-05-14 12:51:59 +00:00
whitequark
2999756493
firmware: impl std_artiq::io::{Read,Write} for io::{Read,Write}.
2018-05-14 12:51:59 +00:00
whitequark
bfc8fd0807
firmware: add io::Error::Unrecognized variant and use it in drtioaux.
2018-05-14 12:51:59 +00:00
Robert Jördens
504d37b66b
suservo: add SI units functions and document
...
m-labs/artiq#788
2018-05-14 12:26:49 +00:00
Robert Jördens
4993ceec35
sampler: unroll conversion for speed
2018-05-14 12:26:49 +00:00
Robert Jördens
d71e4e60a9
suservo: use addition for offset
2018-05-14 12:26:49 +00:00
Robert Jördens
27f975e7bb
kasli: eem DifferentialInputs need DIFF_TERM
...
cleanup some formatting on the way
2018-05-14 12:26:49 +00:00
Robert Jördens
2a47b934ea
suservo: remove adc return clock gating
2018-05-14 12:26:49 +00:00
Robert Jördens
74c0b4452b
suservo: clkout and sdo[b-d] are inverted
2018-05-14 12:26:49 +00:00
Robert Jördens
04240cdc08
suservo: sampler channels are reversed
2018-05-14 12:25:09 +00:00
whitequark
7e299563df
firmware: mark many functions in libio as #[inline].
2018-05-14 11:22:56 +00:00
whitequark
368d6f9bfb
satman: remove useless _Unwind_Resume.
2018-05-14 11:22:56 +00:00
whitequark
42420e094a
satman: don't unwrap so much in process_aux_packet.
...
This shrinks the code by almost 4K.
2018-05-14 11:22:56 +00:00
Sebastien Bourdeauducq
ba1d137d19
ad9914: fix FTW write in regular resolution mode
2018-05-14 18:47:23 +08:00
whitequark
56a29b91fc
firmware: implement ConsoleLogger, use it in satman.
2018-05-14 10:45:11 +00:00
whitequark
5d43d457d2
satman: eliminate heap.
2018-05-14 10:05:02 +00:00
whitequark
46c8afc56c
firmware: implement libio and use in in drtioaux.
2018-05-14 10:02:39 +00:00
whitequark
d543c9aa63
firmware: backtrace_artiq → unwind_backtrace.
...
This crate isn't ARTIQ-specific.
2018-05-14 07:33:00 +00:00
Sebastien Bourdeauducq
b04c7abde8
ad9914: fix kernel_invariants
2018-05-14 14:02:11 +08:00
Sebastien Bourdeauducq
56a18682a7
ad9914: minor fixes
2018-05-14 10:37:50 +08:00
Sebastien Bourdeauducq
194d6462ee
ad9914: fix set_mu
2018-05-14 00:19:09 +08:00
hartytp
00cb31b804
sampler: remove v_ref parameter ( #988 )
2018-05-13 18:00:57 +02:00
Sebastien Bourdeauducq
3027951dd8
integrate new AD9914 driver
...
moninj, analyzer, docs, examples, tests.
2018-05-13 23:29:35 +08:00
Sebastien Bourdeauducq
663d8e66ba
ad9914: optimize extended-resolution mode
2018-05-13 23:01:06 +08:00
Sebastien Bourdeauducq
c8d91b297d
coredevice: add new ad9914 driver
2018-05-13 22:30:33 +08:00
whitequark
f383a470fe
satman: do not debug print unexpected aux packets.
...
This shrinks firmware by 2.8K.
2018-05-13 13:43:39 +00:00
whitequark
aa42a69849
libdrtioaux: always inline read/write helpers.
...
This shrinks Packet::{read_from,write_to} by 1K.
2018-05-13 13:39:14 +00:00
whitequark
32522be413
satman: use 1K log buffer and 4K stack.
...
This reduces memory requirements in half.
2018-05-13 13:28:00 +00:00
whitequark
ee4c475cf3
gateware: fix Sayma satellite build.
...
RTIO clock multiplier was removed from Sayma in 32f22f4c
.
2018-05-13 13:10:39 +00:00
Sebastien Bourdeauducq
8c1390e557
kasli: use 62.5MHz clock for siphaser reference ( #999 )
2018-05-12 22:58:03 +08:00
Sebastien Bourdeauducq
2426fea3f2
siphaser: support external reference for the freerunning 150MHz
2018-05-12 22:57:11 +08:00
Sebastien Bourdeauducq
6796413a53
serwb: remove unnecessary shebang line
2018-05-12 22:49:44 +08:00
Florent Kermarrec
f5208ff2f3
serwb/core: reduce buffering, use buffered=True
2018-05-12 12:03:58 +02:00
Florent Kermarrec
fdc953e569
serwb/etherbone: recuce buffering
2018-05-12 12:03:11 +02:00
Florent Kermarrec
6e67e6d0b1
serwb: revert some changes (was breaking simulation)
2018-05-12 11:59:46 +02:00
Florent Kermarrec
0a6d4ccd85
serwb/phy: improve/cleanup init
2018-05-12 01:35:34 +02:00
Florent Kermarrec
b6ab59fb80
serwb/phy: increase timeout
2018-05-12 01:32:55 +02:00
Florent Kermarrec
e09dbc89bc
serwb: remove idelaye3 en_vtc (was not done correctly, we'll add direct software control)
2018-05-12 01:32:16 +02:00
Florent Kermarrec
6b4bbe31f7
firmware/ad9154: use fixed hmc7043 sysref phase (found with scan)
2018-05-12 00:12:59 +02:00
Florent Kermarrec
3c49eba0a0
firmware/hmc830_7043: put hmc7043 in sleep mode before hmc830 initialization
...
hmc7043 seems to generate broadband noise when not initialized. This allows isolating issues. If hmc830 still does not always lock correctly, then this is not related to hmc7043 broadband noise.
2018-05-12 00:06:49 +02:00
Florent Kermarrec
cd4477864a
serwb: fix case when rtm fpga is not loaded, lvds input can be 0 or 1
2018-05-11 23:31:25 +02:00
Sebastien Bourdeauducq
2e3bf8602f
serwb: reduce buffering. Closes #997
2018-05-11 14:13:41 +08:00
Sebastien Bourdeauducq
2cece47b10
firmware/si5324: fix compilation warning
2018-05-09 20:00:08 +08:00
Sebastien Bourdeauducq
6b811c1a8b
sayma: fix runtime/rtm gateware address conflict
2018-05-09 19:47:29 +08:00
Florent Kermarrec
9de08f85c6
firmware/ad9154: reduce verbosity of dac_sysref_cfg
2018-05-09 10:57:00 +02:00
Robert Jördens
f055bf88f6
suservo: add clip flags ( #992 )
2018-05-09 07:16:15 +00:00
Florent Kermarrec
60fd362d57
serwb: fix rx_comma detection
2018-05-07 23:54:35 +02:00
Robert Jördens
7d4a103a43
opticlock, suservo: set default kasli hw_rev
2018-05-07 09:07:18 +02:00
whitequark
c646409dbe
firmware: fix order of bits clocked into hmc542.
...
Fixes #993 .
2018-05-05 03:12:25 +00:00
whitequark
917a4185eb
Unbreak 9dc7efef
.
2018-05-05 03:00:30 +00:00
whitequark
fd2b8d5f8f
firmware: raise hmc542 log level to INFO.
2018-05-05 02:59:49 +00:00
whitequark
a148729bf8
artiq_flash, artiq_devtool: add support for ssh -J option.
2018-05-05 02:50:01 +00:00
whitequark
9704fb837f
firmware: fix warnings in ad9154 driver.
2018-05-05 01:55:42 +00:00
whitequark
8a70c18d1e
firmware: add debug output to hmc542 driver.
2018-05-05 01:53:30 +00:00
whitequark
68ef09ed73
firmware: stop profiler before rebooting too.
2018-05-05 01:52:44 +00:00
whitequark
9dc7efefe4
compiler: transparently handle Windows newlines in RunTool.
2018-05-05 01:43:00 +00:00
whitequark
4f29d9134f
firmware: update log_buffer.
...
Fixes #986 .
2018-05-05 01:18:59 +00:00
whitequark
5ebc626cf4
artiq_coreprofile: fix an inverted option.
2018-05-05 00:49:42 +00:00
whitequark
b1d349cc1b
firmware: implement a sampling profiler.
...
Does not yet support constructing call graphs.
2018-05-05 00:44:40 +00:00
whitequark
9857dfcd7d
firmware: add irq::Exception to libboard.
2018-05-04 18:41:03 +00:00
Sebastien Bourdeauducq
0b4d06c7a9
worker: keep sys.modules untouched until the end of examine()
2018-05-02 12:50:37 +08:00
Sebastien Bourdeauducq
8079aa6d20
worker: python docs recommend not replacing sys.modules
2018-05-02 12:48:50 +08:00
Sebastien Bourdeauducq
8c69d939fb
worker: restore sys.modules in examine() ( #976 )
2018-05-02 12:32:35 +08:00
Sebastien Bourdeauducq
8d66d53e06
Revert "tools/file_import: restore sys.modules. Closes #976 "
...
This reverts commit b48e782dd6
.
2018-05-02 12:14:56 +08:00
Sebastien Bourdeauducq
5f0cfadb30
rtio/sed: add unittest for sequence number rollover
2018-05-02 12:04:30 +08:00
Sebastien Bourdeauducq
4120105e3a
rtio/sed: fix output network cmp_wrap
2018-05-02 12:04:03 +08:00
Sebastien Bourdeauducq
bce8fa3ec5
rtio/sed: add replace unittest at the top level ( #978 )
2018-05-02 10:58:18 +08:00
Sebastien Bourdeauducq
83fb431cd0
rtio/sed: pass sequence numbers through the FIFOs. Closes #978
2018-05-02 10:57:57 +08:00
Florent Kermarrec
05955bfd79
sayma_rtm: use bufio for sys4x (needed since we are using a -1 speedgrade)
2018-05-01 22:16:35 +02:00
Sebastien Bourdeauducq
b48e782dd6
tools/file_import: restore sys.modules. Closes #976
2018-05-01 22:15:47 +08:00
Florent Kermarrec
84e1f05559
sayma_rtm: make cd_sys4x clock domain reset_less
2018-05-01 16:11:26 +02:00
whitequark
623614f835
Update LLVM to 6.0.0 and Rust to 1.25.0.
2018-05-01 08:57:37 +00:00
Florent Kermarrec
64c8eee28d
serwb/phy/master: fix slave ready detection by filtering possible glitches on rx data (seems to happen when RTM fpga is not loaded)
2018-04-30 23:59:56 +02:00
Robert Jördens
5a683ddd1f
Revert "kasli: force hw_rev for the different targets"
...
This reverts commit 17d7d7856a
.
Would require filtering it in misoc or better
removing the argparse option.
2018-04-28 23:24:41 +02:00
Robert Jördens
17d7d7856a
kasli: force hw_rev for the different targets
2018-04-28 21:30:29 +02:00
whitequark
f7e08ec46b
Unbreak f35f1001
.
2018-04-28 01:03:08 +00:00
whitequark
f35f100110
compiler: don't crash printing locations of specialized functions.
...
Fixes #987 .
2018-04-28 00:49:25 +00:00
Robert Jördens
8812824fb2
suservo: speed up example, interlock mem
2018-04-27 17:17:17 +00:00
Robert Jördens
ae80bab180
urukul: reg based io-update is a kernel
2018-04-27 16:42:09 +00:00
Robert Jördens
5d3c76fd50
sayma_rtm: use bitstream opts in migen
2018-04-27 15:43:32 +00:00
Robert Jördens
5f00326c65
suservo: coeff mem write port READ_FIRST
2018-04-27 15:43:32 +00:00
Robert Jördens
73fa572275
suservo: documentation, small API changes
2018-04-27 16:53:22 +02:00
Florent Kermarrec
4e2d9abaf7
firmware/ad9154: combine analog and digital delay of hmc7043 for sysref scan
2018-04-27 14:32:03 +02:00
Robert Jördens
fe9834bac4
suservo: update 'technology preview' example [wip]
...
Still with mostly undocumented and unstable API.
2018-04-27 12:04:17 +00:00
Robert Jördens
307cd07b9d
suservo: lots of gateware/ runtime changes
...
tested/validated:
* servo enable/disable
* dds interface, timing, io_update, mask_nu
* channel control (en_out, en_iir, profile)
* profile configuration (coefficients, delays, offsets, channel)
* adc timings and waveforms measured
* asf state readback
* adc readback
individual changes below:
suservo: correct rtio readback
suservo: example, device_db [wip]
suservo: change rtio channel layout
suservo: mem ports in rio domain
suservo: sck clocked from rio_phy
suservo: cleanup, straighten out timing
suservo: dds cs polarity
suservo: simplify pipeline
suservo: drop unused eem names
suservo: decouple adc SR from IIR
suservo: expand coredevice layer
suservo: start the correct stage
suservo: actually load ctrl
suservo: refactor/tweak adc timing
suservo: implement cpld and dds init
2018-04-27 13:50:26 +02:00
Robert Jördens
01f762a8f5
urukul/ad9910: support blind init
...
urukul: always set io_update attribute
to silence compiler warning w.r.t. kernel_invariants
2018-04-27 13:48:40 +02:00
Florent Kermarrec
3802c7badb
firmware/ad9154: add sysref scan/conf for jesd sc1
2018-04-27 13:20:20 +02:00
Florent Kermarrec
8212e46f5e
sayma_amc: filter jesd refclk/sysref with jreset (hmc7043 can generate noise when unconfigured see sinara issue #541 )
2018-04-27 13:04:37 +02:00
Robert Jördens
edbc7763e0
urukul: allow no io_update_device
2018-04-25 17:32:36 +00:00
Robert Jördens
8a1151b54f
suservo: example device db
2018-04-25 17:14:25 +00:00
Robert Jördens
f9b2c32739
suservo: add pgia spi channel
2018-04-25 17:14:25 +00:00
Robert Jördens
c83305065a
suservo: add servo/config/status register
2018-04-25 15:59:06 +00:00
Robert Jördens
105068ad90
suservo: fix restart timing
2018-04-25 15:19:49 +00:00
Robert Jördens
c304b6207a
suservo: drop adc idelays
2018-04-25 14:59:50 +00:00
Robert Jördens
b44d6517d1
suservo: use 125 MHz SDR ADC
...
* easier timing
* natural sampling on rising edge
* timing, signal robustness
* adjust the servo iteration timing
2018-04-25 14:32:23 +00:00
Robert Jördens
37c186a0fc
suservo: refactor, constrain
...
* remove DiffMixin, move pad layout handling to pads
* add input delay constraints, IDELAYs
2018-04-25 13:44:52 +00:00
Robert Jördens
d0258b9b2d
suservo: set input delays
2018-04-24 15:30:25 +00:00
Robert Jördens
fe75064c1e
suservo: cleanup rtio interface
2018-04-24 13:08:40 +00:00
Robert Jördens
3942c2d274
suservo: fix clkout cd drive
2018-04-24 10:18:32 +00:00
Robert Jördens
f74998a5e0
suservo: move arch logic to top, fix tests
2018-04-23 21:11:26 +00:00
Robert Jördens
4903eb074c
suservo: use BUFIO/BUFH for ADC
2018-04-23 18:30:19 +00:00
Robert Jördens
e36deab0a8
suservo/adc: try to help vivado extract srls
2018-04-23 18:30:19 +00:00
Robert Jördens
929ed4471b
kasli/SUServo: use suservo, implement urukul_qspi
...
m-labs/artiq#788
2018-04-23 18:30:18 +00:00
Robert Jördens
4c1e356f67
suservo: add pads rewiring layer for eems
2018-04-23 18:30:18 +00:00
Robert Jördens
99dd9c7a2a
suservo: fix rtio interface width
2018-04-23 18:30:18 +00:00
Robert Jördens
d5eea962ec
suservo: fix cnv_b diff
2018-04-23 18:30:12 +00:00
Robert Jördens
c8fd63754a
suservo: add unittests
...
m-labs/artiq#788
2018-04-23 18:25:59 +00:00
Robert Jördens
934c41b90a
gateware: add suservo
...
from
fe4b60b902
m-labs/artiq#788
2018-04-23 18:24:59 +00:00
Sebastien Bourdeauducq
4fe09fddd5
examples/kc705_nist_clock: update to new ad53xx driver
2018-04-22 15:03:30 +08:00
Sebastien Bourdeauducq
c47d3ec8c8
zotino: use None as default for ldac and clr
...
This is also what AD53xx does.
2018-04-22 15:03:01 +08:00
Sebastien Bourdeauducq
d2d02ae353
artiq_coredebug: fix permissions
2018-04-22 15:02:17 +08:00
whitequark
3b054855ec
firmware: add allocator debug feature, invoked by artiq_coredebug frontend.
2018-04-21 19:39:46 +00:00
whitequark
873324d52b
firmware: don't truncate queued RPCs ( fixes #985 ).
2018-04-21 19:39:46 +00:00
whitequark
58967f14fd
compiler: do not try to re-coerce fully coerced numerics.
2018-04-21 18:25:52 +00:00
whitequark
742e273441
Commit missing part of b4e3c30d
.
2018-04-20 15:27:27 +00:00
whitequark
0d5fd1e83d
runtime: fix race condition in log extraction code paths ( #979 ).
...
The core device used to panic if certain combinations of borrows
of the log buffer happened. Now they all use .try_borrow_mut().
2018-04-20 15:26:00 +00:00
whitequark
b4e3c30d8c
compiler: desugar x != y into not x == y ( fixes #974 ).
2018-04-20 12:20:45 +00:00
Florent Kermarrec
fe689ab4f2
firmware/serwb: add link test, use info! instead of debug! for link settings (useful to analyze logs from others boards)
2018-04-17 19:24:22 +02:00
Florent Kermarrec
439d2bf2bc
sayma/serwb: adapt, full reset of rtm on link reset
2018-04-17 19:24:03 +02:00
Florent Kermarrec
8edf4541d6
serwb: adapt test
2018-04-17 19:21:53 +02:00
Florent Kermarrec
20ccc9d82f
serwb/core/phy: move scrambler in phy, add link test, revert delay min/max checks
2018-04-17 19:21:21 +02:00
Florent Kermarrec
ebfac36223
serwb/scrambler: dynamic enable/disable
2018-04-17 19:20:06 +02:00
Florent Kermarrec
816a6f2ec7
serwb/phys: remove phy_width (revert linerate to 1Gbps)
2018-04-17 19:19:18 +02:00
Sebastien Bourdeauducq
48b48e44dd
kasli/mitll: fix demo
2018-04-17 20:15:38 +08:00
Sebastien Bourdeauducq
79f4892e22
kasli/mitll: fix RTIO channel numbers
2018-04-17 20:15:17 +08:00
Sebastien Bourdeauducq
eac447278f
kasli: add MITLL variant
2018-04-17 19:00:11 +08:00
Sebastien Bourdeauducq
756e120c27
kasli/sysu: add comments
2018-04-17 18:46:55 +08:00
Florent Kermarrec
1acd7ea1db
sayma/serwb: re-enable scrambling
2018-04-17 00:49:36 +02:00
Florent Kermarrec
ca01c8f1cb
sayma: reduce serwb linerate to 500Mbps
2018-04-16 23:19:15 +02:00
Florent Kermarrec
825a2158ba
serwb: add phy_width parameter to allow reducing linerate to 500Mbps or 250Mbps
2018-04-16 23:19:14 +02:00
Florent Kermarrec
bb90fb7d59
sayma/serwb: remove scrambling (does not seems to work on sayma for now...)
2018-04-07 15:57:57 +02:00
Florent Kermarrec
6aa8e2c433
serwb/test: replace valid/ready with stb/ack
2018-04-07 15:55:57 +02:00
Florent Kermarrec
73dbc0b6b6
serwb/test: adapt to new version
2018-04-07 15:09:29 +02:00
Florent Kermarrec
e15f8aa903
sayma/serwb: enable scrambling
2018-04-07 14:52:37 +02:00
Florent Kermarrec
9d0e8c27ff
serwb/scrambler: add flow control
2018-04-07 14:51:17 +02:00
Florent Kermarrec
2f8bd022f7
sayma_rtm: remove sys0p2x clock
2018-04-07 03:10:34 +02:00
Florent Kermarrec
1fd96eb0fd
serwb: replace valid/ready with stb/ack
2018-04-07 03:06:19 +02:00
Florent Kermarrec
c8a08375f8
serwb: replace valid/ready with stb/ack
2018-04-07 03:03:44 +02:00
Florent Kermarrec
73b727cade
serwb: new version using only sys/sys4x clocks domains, scrambling deactivated.
2018-04-07 02:59:14 +02:00
Florent Kermarrec
dd21c07b85
targets/sayma_rtm: fix serwb 2 ...
2018-04-03 18:59:05 +02:00
Florent Kermarrec
7488703f23
targets/sayma_rtm: fix serwb
2018-04-03 18:57:00 +02:00
Florent Kermarrec
aef0153a8f
targets/sayma: adapt to new serwb clocking
2018-04-03 18:53:39 +02:00
Florent Kermarrec
3248caa184
gateware/serwb: move all clocking outside of serwb, use existing sys/sys4x clocks
2018-04-03 18:48:08 +02:00
Sebastien Bourdeauducq
f0771765c1
rtio: move CRI write comment to more appropriate location
2018-03-29 23:55:00 +08:00
Sebastien Bourdeauducq
493d2a653f
siphaser: add false path between sys_clk and mmcm_freerun_output
2018-03-29 10:55:41 +08:00
Sebastien Bourdeauducq
4229c045f4
kasli: fix DRTIO master clock constraint
2018-03-29 10:20:31 +08:00
Sebastien Bourdeauducq
3d89ba2e11
sayma: remove debug leftover
2018-03-29 10:20:17 +08:00
Sebastien Bourdeauducq
605292535c
kasli: ignore OSERDESE2->ISERDESE2 timing path on DRTIO targets as well
2018-03-29 10:12:02 +08:00
Sebastien Bourdeauducq
416232cb64
runtime: do not reset RTIO PHY on core.reset(). Closes #971
2018-03-28 10:51:07 +08:00
Sebastien Bourdeauducq
5ca59467fd
ad53xx: make LDAC and CLR optional
2018-03-26 22:45:01 +08:00
whitequark
bab6723ff2
Revert "gateware: don't run tests if there is no migen."
...
This reverts commit 4804cfef9b
.
2018-03-26 03:33:52 +00:00
whitequark
4804cfef9b
gateware: don't run tests if there is no migen.
...
This allows us to skip testing gateware on Windows.
2018-03-26 03:26:34 +00:00
whitequark
87c2f119a5
artiq_devtool: add load action.
2018-03-25 20:29:51 +00:00
Sebastien Bourdeauducq
8d62ea2288
examples: fix KC705 ad53xx
2018-03-25 11:19:54 +08:00
Sebastien Bourdeauducq
c3f763e217
dashboard: also create monitoring widgets for the Zotino class
2018-03-25 11:19:40 +08:00
Robert Jördens
a20dfd9c00
examples/master: ad5360 -> zotino
2018-03-24 16:46:59 +01:00
Robert Jördens
0505e9124f
kc705: port device_db, ad53xx/zotino example
2018-03-24 16:05:26 +01:00
Robert Jördens
3a0dfb7fdc
ad53xx: port monitor, moninj dashboard, kc705 target
2018-03-24 16:04:02 +01:00
Robert Jördens
a8f0ee1c86
ad53xx: refactor offset_to_mu(), fix docs
2018-03-24 15:45:42 +01:00
Robert Jördens
b0c8097025
ad53xx: remove channel index AND
...
It's incorrect since it doesn't respect the number of channels
of any of those chips (none has 64 channels).
2018-03-24 15:39:06 +01:00
Robert Jördens
77bcc2c78f
zotino: style, use attributes to set SPI config
2018-03-24 15:37:34 +01:00
Robert Jördens
2cf414a480
ad53xx: move 8 bit shift out of ad53xx protocol funcs
...
That's specific to the SPI bus, not to the ad53xx.
2018-03-24 15:15:56 +01:00
Robert Jördens
08326c5727
ad53xx: style [nfc]
2018-03-24 14:10:20 +01:00
Robert Jördens
68e433a3a8
opticlock/device_db: resurrect novogorny
...
deleted in a992a67
2018-03-24 13:46:45 +01:00
hartytp
a992a672d9
coredevice/zotino: add ( #969 )
...
* Replace ad5360 driver with a ad53xx driver, designed to have a nicer interface
Add Zotino driver and add to opticlock target for Kasli
Test Zotino on hw:
- Verify all timings on the hardware with a scope
- Verify that we can correctly set and read back all registers in a loop (checks for SI and driver issues)
- check we can set LEDs correctly
- check calibration routine + all si unit functions with a good DVM
- look at DAC transitions on a scope (while triggering of a TTL) on persist to check there are no LDAC glitches etc
To do: update examples and e.g. KC705 device db.
2018-03-24 13:41:18 +01:00
Robert Jördens
1553fc8c7d
sed: reset `valid` in output sorter
2018-03-23 11:11:11 +00:00
Sebastien Bourdeauducq
0635907699
artiq_flash: fix cmdline formatting
2018-03-22 19:10:29 +08:00
Sebastien Bourdeauducq
46d5af31a1
artiq_flash: enclose filename in curly braces before passing to OpenOCD
...
Closes #927
2018-03-22 17:20:48 +08:00
Sebastien Bourdeauducq
eeedcfbdd7
artiq_flash: do not suppress useful backtrace information
2018-03-22 17:11:21 +08:00
Sebastien Bourdeauducq
f2cc2a5ff2
firmware: reset local RTIO PHYs on startup ( #958 )
2018-03-22 16:29:31 +08:00
Robert Jördens
770b0a7b79
novogorny: conv -> cnv
...
* parity with sampler
* also add novogorny device to opticlock
2018-03-21 18:38:42 +00:00
Robert Jördens
82c4f0eed4
sampler: fix channel gain retrieval
2018-03-21 14:22:13 +01:00
Robert Jördens
12d699f2a8
suservo: add sampler example
2018-03-21 12:21:53 +00:00
Robert Jördens
97918447a3
sampler: add coredevice driver
2018-03-21 12:21:53 +00:00
Robert Jördens
1afce8c613
kasli: simplify single eem pin formatting
2018-03-21 13:08:42 +01:00
Robert Jördens
d48b8f3086
kasli: fix sampler sdr/cnv pins
2018-03-21 09:28:00 +00:00
Robert Jördens
80903cead7
novogorny: streamline gain setting method, style [nfc]
2018-03-21 08:53:26 +00:00
Robert Jördens
f5a1001114
suservo: add device database and artiq_flash variant
2018-03-21 08:53:26 +00:00
Robert Jördens
1fb5907362
kasli: add SUServo variant (Sampler-Urukul Servo)
2018-03-21 08:53:26 +00:00
Robert Jördens
f74d5772f4
sampler: add wide eem definition
2018-03-21 08:53:26 +00:00
Sebastien Bourdeauducq
32f22f4c9c
sayma: disable SERDES TTL entirely
...
Timing closure becomes very random, even at 4X.
2018-03-21 13:03:48 +08:00
Sebastien Bourdeauducq
f8c2d54e75
ttl_serdes_ultrascale: configurable SERDES ratio. Also try X4 on Sayma
2018-03-21 13:01:38 +08:00
Sebastien Bourdeauducq
9c2d343052
sayma: use SERDES RTIO TTL
...
This is not enabled on the standalone design as it breaks timing.
2018-03-21 10:53:52 +08:00
Robert Jördens
9ad1fd8f25
urukul: add comment and doc about the AD9910 MASTER_RESET
2018-03-20 17:40:03 +01:00
Robert Jördens
f17c0abfe4
urukul: don't pulse DDS_RST on init
...
closes m-labs/artiq#940
Apparently, if the DDS are reset, every other time they don't work
properly.
2018-03-20 16:10:26 +00:00
Robert Jördens
a185e8dc52
urukul: fix MASK_NU offset
2018-03-20 16:10:11 +00:00
Robert Jördens
f4719ae24b
sdram: clean up console output
2018-03-20 15:42:49 +01:00
Robert Jördens
206664afd9
sdram: compact read_level output
2018-03-20 10:16:05 +00:00
Robert Jördens
495625b99d
bootloader: repeat memory test 4 times
2018-03-20 09:57:49 +00:00
Robert Jördens
6fb0cbfcd3
sdram: clean up, make read_level robust to wrap around
...
* fix a few rust warnings
* also do eye scans on kintex
2018-03-20 09:57:49 +00:00
Robert Jördens
3abb378fbe
i2c: unused variable
2018-03-20 09:56:26 +00:00
Sebastien Bourdeauducq
c8020f6bbd
ttl_serdes_generic: fix/upgrade test
2018-03-20 16:46:57 +08:00
Sebastien Bourdeauducq
a5825184b7
add ttl_serdes_ultrascale (untested)
2018-03-20 16:07:23 +08:00
Sebastien Bourdeauducq
fad066f1aa
ttl_serdes_7series: cleanup indentation
...
Inconsistent with other code and confuses text editors.
2018-03-20 15:50:04 +08:00
Robert Jördens
276b0c7f06
sdram: reject read delay wrap arounds
2018-03-20 00:28:41 +01:00
Robert Jördens
4b3f408143
sdram: simplify read level scan
2018-03-19 18:41:56 +00:00
Robert Jördens
845784c180
kusddrphy: use first and last tap that yield many valid reads
2018-03-19 17:54:26 +00:00
Robert Jördens
ed2e0c8b34
sayma/sdram/scan: test each tap 1024 times
2018-03-20 00:59:31 +08:00
hartytp
a27b5d88c2
Novogorny driver, remove unused imports ( #964 )
...
* Novogorny driver, remove unused imports
* more unused imports
* oops, one final one!
2018-03-19 11:58:14 +01:00
Robert Jördens
7a7ff6d2dd
Merge pull request #963 from hartytp/kasli_zotino_sampler
...
Add Zotino and Sampler functions to Kasli. Add Zotino to Kasli EEM 7 …
2018-03-19 10:52:50 +01:00
Thomas Harty
37d431039d
Fix typos.
...
Reduce ififo depth to 4 for Zotino.
2018-03-19 09:42:18 +00:00
whitequark
c86df8e13e
firmware: try to unstuck the I2C bus if it gets stuck.
...
Fixes #957 .
2018-03-19 06:23:23 +00:00
Thomas Harty
c4fa44bc62
Add Zotino and Sampler functions to Kasli. Add Zotino to Kasli EEM 7 on OptiClock.
2018-03-18 00:25:43 +00:00
Robert Jördens
f39b7b33e8
ad5360: whitespace [nfc]
2018-03-17 18:51:17 +01:00
ion
c1439bfd3b
Fix AD5360 after migration to SPI2
2018-03-17 11:37:11 +00:00
whitequark
4b5a78e231
compiler: do not pass files to external tools while they are opened.
...
This fixes access violations on Windows that are present both with
input and output files. For some reason, Cygwin-compiled binutils
did not exhibit this problem, but MSYS-compiled binutils do.
Fixes #961 .
2018-03-15 22:21:29 +00:00
whitequark
5cb2602021
artiq_devtool: flash gateware if -g is passed.
2018-03-15 08:33:53 +00:00
whitequark
9ea7d7a804
firmware: allow building without system UART.
2018-03-14 18:34:31 +00:00