mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-25 19:28:26 +08:00
doc/rtio: handover vis, tweak other vis's
This commit is contained in:
parent
87d3b53bde
commit
1c9005851e
@ -57,9 +57,9 @@ The following diagram shows what is going on at the different levels of the soft
|
|||||||
.. wavedrom::
|
.. wavedrom::
|
||||||
{
|
{
|
||||||
signal: [
|
signal: [
|
||||||
{name: 'kernel', wave: 'x22.2x', data: ['on()', 'delay(2*us)', 'off()'], node: '..A.XB'},
|
{name: 'kernel', wave: 'x32.4x', data: ['on()', 'delay(2*us)', 'off()'], node: '..A.XB'},
|
||||||
{name: 'now_mu', wave: '2...2.', data: ['7000', '9000'], node: '..P..Q'},
|
{name: 'now_mu', wave: '2...2.', data: ['7000', '9000'], node: '..P..Q'},
|
||||||
{name: 'slack', wave: 'x2x.2x', data: ['4400', '5800']},
|
{name: 'slack', wave: 'x3x.4x', data: ['4400', '5800']},
|
||||||
{},
|
{},
|
||||||
{name: 'rtio_counter', wave: 'x2x|2x|2x2x', data: ['2600', '3200', '7000', '9000'], node: ' V.W'},
|
{name: 'rtio_counter', wave: 'x2x|2x|2x2x', data: ['2600', '3200', '7000', '9000'], node: ' V.W'},
|
||||||
{name: 'ttl', wave: 'x1.0', node: ' R.S', phase: -7.5},
|
{name: 'ttl', wave: 'x1.0', node: ' R.S', phase: -7.5},
|
||||||
@ -129,20 +129,36 @@ Seamless handover
|
|||||||
The timeline cursor persists across kernel invocations.
|
The timeline cursor persists across kernel invocations.
|
||||||
This is demonstrated in the following example where a pulse is split across two kernels:::
|
This is demonstrated in the following example where a pulse is split across two kernels:::
|
||||||
|
|
||||||
|
def run():
|
||||||
|
k1()
|
||||||
|
k2()
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def kernel1():
|
def k1():
|
||||||
ttl.on()
|
ttl.on()
|
||||||
delay(1*s)
|
delay(1*s)
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def kernel2():
|
def k2():
|
||||||
ttl.off()
|
ttl.off()
|
||||||
|
|
||||||
def run():
|
Here, ``run()`` calls ``k1()`` which exits leaving the cursor one second after the rising edge and ``k2()`` then submits a falling edge at that position.
|
||||||
kernel1()
|
|
||||||
kernel2()
|
.. wavedrom::
|
||||||
|
{
|
||||||
|
signal: [
|
||||||
|
{name: 'kernel', wave: '3.3..5..|4.', data: ['k1: on()', 'k1: delay(dt)', 'k1->k2 swap', 'k2: off()'], node: '..A........B'},
|
||||||
|
{name: 'now_mu', wave: '2....2...|.', data: ['t0', 't0+dt'], node: '..P........Q'},
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
{name: 'rtio_counter', wave: 'x.........|2x|2', data: ['t0', 't0+dt'], node: '...........V..W'},
|
||||||
|
{name: 'ttl', wave: 'x1..0', node: '.R..S', phase: -10.5},
|
||||||
|
],
|
||||||
|
edge: [
|
||||||
|
'A~>R', 'P~>R', 'V~>R', 'B~>S', 'Q~>S', 'W~>S'
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
``kernel1()`` exits leaving the cursor one second after the rising edge and ``kernel2()`` then submits a falling edge at that position.
|
|
||||||
|
|
||||||
Synchronization
|
Synchronization
|
||||||
---------------
|
---------------
|
||||||
@ -154,7 +170,7 @@ When a kernel should wait until all the events on a particular channel have been
|
|||||||
.. wavedrom::
|
.. wavedrom::
|
||||||
{
|
{
|
||||||
signal: [
|
signal: [
|
||||||
{name: 'kernel', wave: 'x2x.|2.|x', data: ['on()', 'sync()'], node: '..A.....Y'},
|
{name: 'kernel', wave: 'x3x.|2.|x', data: ['on()', 'sync()'], node: '..A.....Y'},
|
||||||
{name: 'now_mu', wave: '2..', data: ['7000'], node: '..P'},
|
{name: 'now_mu', wave: '2..', data: ['7000'], node: '..P'},
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
|
Loading…
Reference in New Issue
Block a user