forked from M-Labs/artiq
doc/rtio: handover vis, tweak other vis's
This commit is contained in:
parent
7481d4e732
commit
aabe53e5fa
@ -57,9 +57,9 @@ The following diagram shows what is going on at the different levels of the soft
|
||||
.. wavedrom::
|
||||
{
|
||||
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: '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: 'ttl', wave: 'x1.0', node: ' R.S', phase: -7.5},
|
||||
@ -129,20 +129,36 @@ Seamless handover
|
||||
The timeline cursor persists across kernel invocations.
|
||||
This is demonstrated in the following example where a pulse is split across two kernels:::
|
||||
|
||||
def run():
|
||||
k1()
|
||||
k2()
|
||||
|
||||
@kernel
|
||||
def kernel1():
|
||||
def k1():
|
||||
ttl.on()
|
||||
delay(1*s)
|
||||
|
||||
@kernel
|
||||
def kernel2():
|
||||
def k2():
|
||||
ttl.off()
|
||||
|
||||
def run():
|
||||
kernel1()
|
||||
kernel2()
|
||||
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.
|
||||
|
||||
.. 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
|
||||
---------------
|
||||
@ -154,7 +170,7 @@ When a kernel should wait until all the events on a particular channel have been
|
||||
.. wavedrom::
|
||||
{
|
||||
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'},
|
||||
{},
|
||||
{},
|
||||
|
Loading…
Reference in New Issue
Block a user