forked from M-Labs/artiq
1
0
Fork 0
Commit Graph

5018 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq 9288301543 examples: add DRTIO sines 2018-06-20 22:39:40 +08:00
Sebastien Bourdeauducq 28fb0fd754 sayma: add SYSREF sampler gateware 2018-06-20 17:48:35 +08:00
Sebastien Bourdeauducq 814d0583db hmc7043: improve smoothness of sysref phase control 2018-06-20 17:40:48 +08:00
Sebastien Bourdeauducq 9142a5ab8a rtio: expose coarse timestamp in RTIO and DRTIO satellite cores 2018-06-20 17:39:54 +08:00
Sebastien Bourdeauducq 5272c11704 typo 2018-06-20 17:05:20 +08:00
Sebastien Bourdeauducq 0c32d07e8b ad9154: new sysref scan
Print margins around the pre-defined fixed phase.
Also report error if margins are too small.

The fixed phase is also changed by this commit (the value 88 is
from before the new HMC7043 initialization code, and is probably wrong).
2018-06-20 00:15:58 +08:00
Sebastien Bourdeauducq 4803ca3799 examples/sayma_drtio: add SAWG channels 2018-06-19 23:50:26 +08:00
Sebastien Bourdeauducq 3d0e92aefd hmc7043: check that chip is disabled at startup 2018-06-19 23:49:17 +08:00
Sebastien Bourdeauducq 740e6863c3 hmc7043: add delay after releasing hardware reset 2018-06-19 23:48:48 +08:00
Sebastien Bourdeauducq 75b6cea52f sayma: add SAWG to DRTIO satellite 2018-06-19 19:12:10 +08:00
Sebastien Bourdeauducq eb3259b847 firmware: reduce number of DAC initialization attempts
Faster startup when one DAC is broken.
2018-06-19 19:10:23 +08:00
Sebastien Bourdeauducq 1d594d0c97 firmware: make DAC initialization failures non-fatal
This allows using RTMs with one broken DAC for development.
2018-06-19 19:09:38 +08:00
Sebastien Bourdeauducq 158b5e3083 satman: program Allaki 2018-06-19 18:09:05 +08:00
Sebastien Bourdeauducq 574892a4e5 firmware/serwb: cleanup and improve messaging 2018-06-19 15:11:03 +08:00
Sebastien Bourdeauducq c862471165 typo 2018-06-19 14:35:24 +08:00
Sebastien Bourdeauducq 433273dd95 sayma: support RTM FPGA, HMC830 and HMC7043 in DRTIO master and satellite 2018-06-19 14:33:48 +08:00
Sebastien Bourdeauducq 476cfa0f53 si5324: improve lock messaging 2018-06-19 14:29:57 +08:00
Sebastien Bourdeauducq 6403a0d5d1 sayma_amc: update without-sawg description 2018-06-19 13:52:05 +08:00
Sebastien Bourdeauducq d29b3dd588 hmc830: compile-time configurable reference frequency 2018-06-19 13:47:32 +08:00
Sebastien Bourdeauducq 6f3ed81626 targets/sayma_rtm: fix description 2018-06-18 17:46:53 +08:00
Robert Jördens 21a48711ec i2c: refactor common operations 2018-06-18 09:34:09 +00:00
Sebastien Bourdeauducq 0e640a6d6f hmc7043: fix SYSREF to meet s/h at FPGA (#794) 2018-06-18 17:04:12 +08:00
Robert Jördens 6272052d15 ad9154: don't drive the bsm with txen pins 2018-06-18 10:04:42 +02:00
Robert Jördens 32484a62de sayma_amc: remove unused imports 2018-06-17 13:09:44 +02:00
Sebastien Bourdeauducq 4f0c918dd3 slave_fpga: improve messaging 2018-06-17 00:27:27 +08:00
Robert Jördens 53ab255c00 sayma_amc: enable slave fpga loading (#813) 2018-06-16 12:47:26 +02:00
Robert Jördens f9910ab242 i2c: support selecting multiple or no channels
closes #1054
2018-06-15 19:36:37 +02:00
Robert Jördens 40baa8ecba hmc7043: disable ch 10 and 11 group 2018-06-15 15:34:31 +00:00
Robert Jördens edfae3c4ba hmc7043: make fpga fabric clocks lvds
2 V common and 1.9 Vpp swing
is brutal to the banks (HP 1.8V AMC and RT 1.8V RTM)
2018-06-15 14:24:33 +00:00
Robert Jördens f385add8b1 slave_fpga: disable cclk and din drive when done
to guard against accidental contention (old rtm gateware
but #813 rework done)
2018-06-13 16:26:48 +00:00
Robert Jördens 1029ac870b sayma_rtm: don't drive txen pins
pins disabled by config
necessary for using that pin as DIN (#813)
2018-06-13 16:11:30 +00:00
Sebastien Bourdeauducq 68d16fc292 serwb: support single-ended signals
Low-speed PHY only.
2018-06-13 21:28:21 +08:00
Robert Jördens a9a25f2605 sayma_rtm: drive ref_lo_clk_sel, and set clk muxes early 2018-06-12 20:00:12 +02:00
Robert Jördens aff7fa008f Revert "artiq_flash/sayma: check for DONE after load"
This reverts commit 2de5b0cf25.

would make artiq uninstallable on windows as win buildbot is broken
2018-06-12 19:14:43 +02:00
Robert Jördens 2de5b0cf25 artiq_flash/sayma: check for DONE after load 2018-06-13 00:47:43 +08:00
Thomas Harty b90a8fcc82 Merge branch 'master' of https://github.com/m-labs/artiq 2018-06-12 14:55:22 +01:00
ion 28ecf81c6c Sayma: HMC7043 init and detect no longer need results. 2018-06-12 13:10:26 +01:00
ion c8935f7adf Sayma: bypass dividers where possible to minimize noise (nb this changes the output skew). 2018-06-12 12:56:04 +01:00
hartytp 7a0140ecb2
Sayma HMC830: update interface and register writes. (#1068)
* Break the HMC830 init into separate functions for general purpose (but, integer-N) init, setting dividers and checking lock

* Use 1.6mA ICP (which the loop filter was optimized for)

* Go through the data sheet carefully and set all registers to the correct value (e.g. ensure that all settings are correctly optimized for integer-N usage)

* Change divider values (now using 100MHz PFD, which should give lower noise in theory)
2018-06-12 12:37:17 +01:00
Robert Jördens a9d97101fc slave_fpga: add another check 2018-06-12 10:24:04 +02:00
Robert Jördens a143e238a8 savel_fpga: get rid of unneeded config 2018-06-12 10:24:04 +02:00
Robert Jördens 4912f53ab4 slave_fpga: board_misoc 2018-06-12 10:24:04 +02:00
hartytp cb6e44b23a Sayma: disable unused HMC7043 outputs. 2018-06-12 16:18:20 +08:00
Robert Jördens 0b086225a9 sawg: don't use Cat() for signed signals
c.f. #1039 #1040 #1022 #1058 #1044
2018-06-09 07:33:47 +00:00
Robert Jördens 5b73dd8604 sawg: accurate unittest rtio freq 2018-06-08 17:22:13 +02:00
Robert Jördens 735e4e8561 pcu: spelling 2018-06-08 14:39:22 +00:00
Robert Jördens e5f6750171 sawg: cleanup double assign 2018-06-08 14:31:55 +00:00
Florent Kermarrec 53e9e475d0 serwb: transmit zeroes when nothing to transmit (for prbs), improve rx idle detection 2018-06-08 16:10:31 +02:00
Florent Kermarrec 7296a76f18 serwb: move common datapath code to datapath.py, simplify flow control 2018-06-08 12:37:08 +02:00
Florent Kermarrec 89797d08ed serwb: revert to 125MHz linerate (until we understand why 1gbps version breaks between builds) 2018-06-07 15:13:56 +02:00
Robert Jördens b4c2b148d1 sawg: don't use Mux for signed signals
migen#75
2018-06-06 15:51:14 +00:00
Florent Kermarrec 009db5eda9 serwb: revert 1gbps linerate 2018-06-06 16:20:20 +02:00
Sebastien Bourdeauducq cae92f9b44 kasli: add Tsinghua variant 2018-06-06 19:03:45 +08:00
Robert Jördens 38971d130a comm_analyzer: fix data without any spi reads
closes #1050
2018-06-06 12:21:42 +02:00
Robert Jördens e21b7965b9 sayma_amc: change test patterns for 'without-sawg' 2018-06-06 08:02:52 +00:00
whitequark 38dac16041 compiler: don't crash when quoting builtin functions.
Fixes #1051.
2018-06-05 23:27:23 +00:00
Sebastien Bourdeauducq af88c4c93e clean up hmc7043 reset 2018-06-05 20:41:48 +08:00
Thomas Harty 988054f4bb Sayma: fix mistake in HMC7043 init code. 2018-06-05 19:22:04 +08:00
Thomas Harty bd1ac7cf3b Configure HMC7043 to give deterministic phase differences between its outputs 2018-06-05 19:22:04 +08:00
Thomas Harty ac5c4913ec Sayma RTM: hold hmc7043 in reset/mute state during init. 2018-06-05 19:22:04 +08:00
Florent Kermarrec b82158a2de firmware/ad9154: add stpl test 2018-06-05 02:08:57 +02:00
Chris Ballance 07d4145a35 correct documented siphaser VCO frequency [NFC] 2018-06-04 20:53:43 +08:00
Florent Kermarrec 925b47b077 firmware/ad9154: reset the dac between each configuration attempt 2018-06-04 14:03:26 +02:00
Robert Jördens bb87976d4f suservo: docstring fixes, revert parametrization of r_rtt 2018-06-04 07:27:17 +00:00
Robert Jördens 07a1425e51
SUservo EEM docs
add documentation to eem.SUServo. Change parameterization of t_rtt to include delays on Sampler, as this seems simpler and more robust to changing RTIO frequencies in the future.

c.f. #1046
2018-06-04 08:51:28 +02:00
whitequark d686d33093 runtime: print hex dumps around PC/EA in case of exception.
For #1026.
2018-06-01 21:17:59 +00:00
whitequark 985fd7377b artiq_rpctool: use inspect.formatargspec instead of a NIH formatter.
Fixes #1029.
2018-06-01 19:18:14 +00:00
Robert Jördens 62deffa7d2 opticlock: fix core device name 2018-06-01 15:39:23 +00:00
Robert Jördens f50aef1a22 suservo: extract boilerplate
closes #1041
2018-06-01 15:37:07 +00:00
Robert Jördens 5de2d06568 ad53xx/zotino: do not clear power down on overtemp 2018-06-01 13:17:13 +00:00
Robert Jördens 2c344686d9 ad53xx/zotino: enable overtemp shutdown and readback control 2018-06-01 13:06:52 +00:00
Robert Jördens 87d3ac9d25 suservo: swap transfer function parametrization
The integrator is now parametrized through its gain and not the PI
corner frequency. The integrator gain limit is given in absolute gain
units and not relative to the proportional gain.

close #1033
2018-06-01 09:38:18 +00:00
Sebastien Bourdeauducq e408241233 sawg: work around compiler not accepting delay_mu(int32) 2018-06-01 15:42:37 +08:00
Sebastien Bourdeauducq f5d55c6902 sawg: add 1 coarse RTIO cycle between spline resets
This keeps all events in the same SED lane and limits the number of SED lanes required.

Closes #1038
2018-06-01 15:15:24 +08:00
Robert Jördens 22506e849f suservo: clarify timings
close #1027
2018-06-01 06:35:38 +00:00
Robert Jördens a42f774440 suservo: document offset range limits
close #1034
2018-05-31 16:55:44 +00:00
Robert Jördens 36dcea3edf suservo: refactor y_mu_to_full_scale as portable
close #1032
2018-05-31 16:44:14 +00:00
Robert Jördens e136709cac suservo: document gain state
close #1030
2018-05-31 16:36:53 +00:00
Robert Jördens 5dbdc5650c suservo: document set_config and get_status more
close #1028
2018-05-31 16:32:05 +00:00
Robert Jördens e1b0fcc24e suservo: add documentation on settings and setup
close #1015
2018-05-31 16:21:09 +00:00
Robert Jördens 9b5a46dffd suservo: fix restart counter assertion
c.f. #788
2018-05-31 15:56:11 +00:00
Paweł 44c7a028cb Added second argument to DIO.add_STD in master and satellite variant of kasli (now builds properly) 2018-05-30 22:49:40 +08:00
Sebastien Bourdeauducq 8fd57e6ccb kasli_tester: add Sampler and Zotino support 2018-05-29 22:36:42 +08:00
Sebastien Bourdeauducq d1df18ae6a monkey_patches: work around Python issue 33678. Closes #1016 2018-05-29 17:51:41 +08:00
whitequark 2e09307d8d firmware: use writeln instead of write in UART logger. 2018-05-29 03:16:52 +00:00
Sebastien Bourdeauducq 560889372f firmware: grabber support 2018-05-29 10:26:36 +08:00
Chris Ballance b860302a9a firmware: fix typo in UART logger 2018-05-28 17:25:23 +00:00
whitequark 2b7d98eb04 firmware: enable all log levels when creating UART logger.
The default is all off.
2018-05-28 16:49:25 +00:00
Sebastien Bourdeauducq ad099edf63 kasli: integrate grabber 2018-05-28 22:43:40 +08:00
Sebastien Bourdeauducq 563e434e15 eem: finalize grabber support 2018-05-28 22:43:06 +08:00
Sebastien Bourdeauducq 2612fd1e72 rtio: add grabber deserializer and WIP PHY encapsulation 2018-05-28 22:42:27 +08:00
Florent Kermarrec e21f14c0b3 serwb/phy: typo (KUSSerdes --> KUSerdes) 2018-05-28 10:41:11 +02:00
Sebastien Bourdeauducq c2890c6cf0 kasli_tester: initialize DDS channels 2018-05-28 14:24:39 +08:00
Robert Jördens b20a8c86b0 kasli: don't bother with grabber ttls for now
not used on target cameras
2018-05-28 07:31:00 +02:00
Sebastien Bourdeauducq 80c69da17e eem: add Grabber IOs and CC 2018-05-28 11:16:23 +08:00
Sebastien Bourdeauducq 4d3f763865 move kasli_opticlock to kasli_basic 2018-05-28 11:02:44 +08:00
Sebastien Bourdeauducq cc0ddf9d72 artiq_flash: do not check variants anymore
Not very useful and adds to the maintainance when building new Kasli systems.
2018-05-28 10:59:01 +08:00
Sebastien Bourdeauducq bb248970df style 2018-05-28 10:40:05 +08:00
Robert Jördens 56cfe77c91 environment: spelling 2018-05-27 20:36:11 +02:00
Robert Jördens b09d07905c kasli: add LUH/PTB/HUB variants
and refactor/simplify variant selection
2018-05-27 18:33:27 +00:00
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