From b139cfd9e24852f3cd32cc276581f249f7392970 Mon Sep 17 00:00:00 2001 From: Shihab Suliman Date: Thu, 23 May 2024 10:52:39 +0100 Subject: [PATCH] Splitting off timing tests --- .../counter/counter_documentation.timing.ini | 129 +++++ .../counter/counter_functionality.timing.ini | 78 +++ .../filter/filter_documentation.timing.ini | 160 ++++++ .../filter/filter_functionality.timing.ini | 15 + modules/pcap/pcap_documentation.timing.ini | 406 +++++++++++++ modules/pcap/pcap_functionality.timing.ini | 321 +++++++++++ .../posenc/posenc_documentation.timing.ini | 148 +++++ .../posenc/posenc_functionality.timing.ini | 81 +++ modules/qdec/qdec_documentation.timing.ini | 115 ++++ modules/qdec/qdec_functionality.timing.ini | 15 + modules/seq/seq_documentation.timing.ini | 360 ++++++++++++ .../seq_double_table_documentation.timing.ini | 71 +++ .../seq_double_table_functionality.timing.ini | 167 ++++++ modules/seq/seq_functionality.timing.ini | 537 ++++++++++++++++++ 14 files changed, 2603 insertions(+) create mode 100644 modules/counter/counter_documentation.timing.ini create mode 100644 modules/counter/counter_functionality.timing.ini create mode 100644 modules/filter/filter_documentation.timing.ini create mode 100644 modules/filter/filter_functionality.timing.ini create mode 100644 modules/pcap/pcap_documentation.timing.ini create mode 100644 modules/pcap/pcap_functionality.timing.ini create mode 100644 modules/posenc/posenc_documentation.timing.ini create mode 100644 modules/posenc/posenc_functionality.timing.ini create mode 100644 modules/qdec/qdec_documentation.timing.ini create mode 100644 modules/qdec/qdec_functionality.timing.ini create mode 100644 modules/seq/seq_documentation.timing.ini create mode 100644 modules/seq/seq_double_table_documentation.timing.ini create mode 100644 modules/seq/seq_double_table_functionality.timing.ini create mode 100644 modules/seq/seq_functionality.timing.ini diff --git a/modules/counter/counter_documentation.timing.ini b/modules/counter/counter_documentation.timing.ini new file mode 100644 index 000000000..3befbbbbc --- /dev/null +++ b/modules/counter/counter_documentation.timing.ini @@ -0,0 +1,129 @@ +[.] +description: Documentation timing diagrams for COUNTER block +scope: counter.block.ini + +[Count Up only when enabled] +3 : ENABLE=1 +8 : TRIG=1 -> OUT=1 +10 : TRIG=0 +13 : TRIG=1 -> OUT=2 +17 : TRIG=0 +18 : TRIG=1 -> OUT=3 +19 : TRIG=0 +20 : TRIG=1 -> OUT=4 +27 : TRIG=0 +28 : ENABLE=0 +29 : TRIG=1 +30 : TRIG=0 + +[Non-zero start and step values] +3 : START=6, STEP=4 +6 : ENABLE=1 -> OUT=6 +10 : TRIG=1 -> OUT=10 +11 : TRIG=0 +16 : TRIG=1 -> OUT=14 +19 : TRIG=0 +23 : TRIG=1 -> OUT=18 +24 : ENABLE=0 +25 : TRIG=0 + +[Setting direction] +3 : ENABLE=1 +6 : TRIG=1 -> OUT=1 +9 : TRIG=0 +12 : TRIG=1 -> OUT=2 +13 : DIR=1 +15 : TRIG=0 +18 : TRIG=1 -> OUT=1 +21 : TRIG=0 +24 : TRIG=1, DIR=0 -> OUT=2 +27 : TRIG=0, ENABLE=0 + +[Setting trigger edge] +3 : ENABLE=1 +6 : TRIG=1 -> OUT=1 +9 : TRIG=0 +12 : TRIG=1 -> OUT=2 +13 : TRIG_EDGE=1 +15 : TRIG=0 -> OUT=3 +18 : TRIG=1 +21 : TRIG=0 -> OUT=4 +24 : TRIG=1, TRIG_EDGE=2 -> OUT=5 +25 : TRIG=0 -> OUT=6 +27 : ENABLE=0 + +[On-Disable mode counting] +2 : OUT_MODE=1 +3 : START=6, STEP=4 +6 : ENABLE=1 +10 : TRIG=1 +11 : TRIG=0 +16 : TRIG=1 +17 : TRIG=0 +23 : TRIG=1 +24 : TRIG=0 +26 : ENABLE=0 -> OUT=18 +29 : ENABLE=1 +30 : TRIG=1 +31 : TRIG=0 +36 : TRIG=1 +37 : TRIG=0 +41 : ENABLE=0 -> OUT=14 + +[Overflow] +2 : START=2147483645 +3 : ENABLE=1 -> OUT=2147483645 +10 : TRIG=1 -> OUT=2147483646 +13 : TRIG=0 +17 : TRIG=1 -> OUT=2147483647 +23 : TRIG=0 +24 : TRIG=1 -> OUT=-2147483648, CARRY=1 +27 : TRIG=0 -> CARRY=0 +28 : ENABLE=0 + +[Overflow negative] +2 : START=-2147483645, STEP=3, DIR=1 +3 : ENABLE=1 -> OUT=-2147483645 +10 : TRIG=1 -> OUT=-2147483648 +13 : TRIG=0 +17 : TRIG=1 -> OUT=2147483645, CARRY=1 +23 : TRIG=0 -> CARRY=0 +26 : ENABLE=0 + +[On-Disable mode counting with overflow] +2 : OUT_MODE=1 +3 : START=2147483645, STEP=1 +6 : ENABLE=1 -> CARRY=0 +10 : TRIG=1 +11 : TRIG=0 +12 : TRIG=1 +13 : TRIG=0 +16 : TRIG=1 +17 : TRIG=0 +23 : TRIG=1 +24 : TRIG=0 +26 : ENABLE=0 -> OUT=-2147483647, CARRY=1 +29 : ENABLE=1 +30 : TRIG=1 +31 : TRIG=0 +36 : TRIG=1 +37 : TRIG=0 +40 : ENABLE=0 -> OUT=2147483647, CARRY=0 +46 : ENABLE=0 + +[Disable and trigger] +3 : START=20 +6 : ENABLE=1 -> OUT=20 +9 : TRIG=1 -> OUT=21 +11 : TRIG=0 +15 : TRIG=1,ENABLE=0 +16 : TRIG=0 + +[Change step and trigger] +3 : START=20, STEP=1 +6 : ENABLE=1 -> OUT=20 +9 : TRIG=1 -> OUT=21 +11 : TRIG=0 +15 : TRIG=1,STEP=2 -> OUT=23 +16 : TRIG=0 +18 : ENABLE=0 diff --git a/modules/counter/counter_functionality.timing.ini b/modules/counter/counter_functionality.timing.ini new file mode 100644 index 000000000..63d53f360 --- /dev/null +++ b/modules/counter/counter_functionality.timing.ini @@ -0,0 +1,78 @@ +[.] +description: Functionality timing diagrams for COUNTER block +scope: counter.block.ini + +[Overflow when counting on falling and both edges] +2 : START=2147483645, TRIG_EDGE=1 +3 : ENABLE=1 -> OUT=2147483645 +10 : TRIG=1 +13 : TRIG=0 -> OUT=2147483646 +17 : TRIG=1 +23 : TRIG=0 -> OUT=2147483647 +24 : TRIG=1 +27 : TRIG=0 -> OUT=-2147483648, CARRY=1 +28 : TRIG=1 -> CARRY=0 +29 : TRIG=0 -> OUT=-2147483647 +30 : ENABLE=0, TRIG_EDGE=2 +32 : ENABLE=1 -> OUT=2147483645 +35 : TRIG=1 -> OUT=2147483646 +37 : TRIG=0 -> OUT=2147483647 +40 : TRIG=1 -> OUT=-2147483648, CARRY=1 +43 : TRIG=0 -> OUT=-2147483647, CARRY=0 +45 : ENABLE=0 + +[Setting Max and Min Values] +3 : START=5, STEP=4, MAX=10, MIN=-10 +6 : ENABLE=1 -> OUT=5 +7 : TRIG=1 -> OUT=9 +8 : TRIG=0 +9 : TRIG=1 -> OUT=-8, CARRY = 1 +10 : TRIG=0 -> CARRY=0 +11 : TRIG=1 -> OUT=-4 +12 : TRIG=0 +13 : TRIG=1 -> OUT=0 +14 : TRIG=0 +15 : TRIG=1 -> OUT=4 +16 : TRIG=0, ENABLE=0 +17 : DIR=1, START=0, STEP=4, MAX=10, MIN=-10 +18 : ENABLE=1 -> OUT=0 +19 : TRIG=1 -> OUT=-4 +20 : TRIG=0 +21 : TRIG=1 -> OUT=-8 +22 : TRIG=0 +23 : TRIG=1 -> OUT=9, CARRY=1 +24 : TRIG=0 -> CARRY=0 +25 : TRIG=1 -> OUT=5 +26 : TRIG=0 +27 : TRIG=1 -> OUT=1 +28 : TRIG=0 +29 : ENABLE=0 + +[Carry resets on falling enable] +3 : START=8, STEP=4, MAX=10, MIN=-10 +6 : ENABLE=1 -> OUT=8 +9 : TRIG=1 -> OUT=-9, CARRY=1 +11 : ENABLE=0 -> CARRY=0 +12 : TRIG=0 + +[Positive Min Value] +3 : START=5, STEP=3, MAX=10, MIN=2 +6 : ENABLE=1 -> OUT=5 +7 : TRIG=1 -> OUT=8 +8 : TRIG=0 +9 : TRIG=1 -> OUT=2, CARRY = 1 +10 : TRIG=0 -> CARRY=0 +11 : TRIG=1 -> OUT=5 +12 : TRIG=0 +13 : ENABLE=0 + +[Negative Max Value] +3 : START=-5, STEP=4, MAX=-1, MIN=-10 +6 : ENABLE=1 -> OUT=-5 +7 : TRIG=1 -> OUT=-1 +8 : TRIG=0 +9 : TRIG=1 -> OUT=-7, CARRY = 1 +10 : TRIG=0 -> CARRY=0 +11 : TRIG=1 -> OUT=-3 +12 : TRIG=0 +13 : ENABLE=0 diff --git a/modules/filter/filter_documentation.timing.ini b/modules/filter/filter_documentation.timing.ini new file mode 100644 index 000000000..db7e93bb1 --- /dev/null +++ b/modules/filter/filter_documentation.timing.ini @@ -0,0 +1,160 @@ +[.] +description: Documentation timing diagrams for FILTER block +scope: filter.block.ini + +[Difference mode] +3 : MODE = 0 +4 : INP = 5 +5 : ENABLE = 1 +10 : TRIG = 1, INP=8 -> OUT=3, READY=1 +11 : TRIG = 0 -> READY=0 +15 : ENABLE = 0 + +[Difference mode positive ramping input] +3 : MODE = 0 +4 : INP = 5 +7 : ENABLE = 1 +10 : INP = 7 +16 : INP = 9 +22 : TRIG = 1, INP=11 -> OUT=6, READY=1 +23 : TRIG = 0 -> READY=0 +27 : INP = 13 +33 : INP = 15 +39 : TRIG = 1 -> OUT = 4, READY = 1 +40 : TRIG = 0 -> READY = 0 +45 : ENABLE = 0 + +[Difference mode negative ramping input] +3 : MODE = 0 +4 : INP = 50 +5 : ENABLE = 1, INP = 45 +6 : INP = 40 +7 : INP = 35 +8 : INP = 30 +9 : INP = 25 +10 : TRIG = 1, INP=20 -> OUT=-25, READY=1 +11 : INP = 15, TRIG = 0 -> READY=0 +12 : INP = 10 +13 : INP = 5 +14 : INP = 0 +15 : INP = -5 +16 : INP = -10, TRIG = 1 -> OUT = -30, READY = 1 +17 : TRIG = 0 -> READY = 0 +18 : ENABLE = 0 + +[Average mode summing inputs] +2 : MODE = 1 +3 : INP = 20 +4 : ENABLE = 1 +5 : INP = 40 +10 : INP = 20 +14 : TRIG = 1, INP = 10 +15 : TRIG = 0 +49 : -> READY=1, OUT=31 +50 : -> READY=0 +53 : ENABLE = 0 + +[Average mode positive ramp] +3 : MODE = 1 +4 : INP = 5 +5 : ENABLE = 1, INP = 6 +6 : INP = 7 +7 : INP = 8 +8 : INP = 9 +9 : INP = 10 +10 : TRIG = 1, INP=15 +11 : TRIG = 0 +15 : INP = 12 +20 : INP = 13 +25 : INP = 14 +30 : INP = 15 +35 : INP = 16 +45 : -> READY=1, OUT=8 +46 : -> READY=0 +47 : TRIG = 1, INP = 17 +48 : TRIG = 0 -> +58 : ENABLE = 0 +82 : -> READY=1, OUT = 13 +83 : -> READY=0 +85 : TRIG = 1 +86 : TRIG = 0 + +[Average mode negative ramp] +3 : MODE = 1 +4 : INP = 19 +5 : ENABLE = 1, INP = 18 +6 : INP = 17 +7 : INP = 16 +8 : INP = 15 +9 : INP = 14 +10 : TRIG = 1, INP=12 +11 : TRIG = 0 +15 : INP = 8 +20 : INP = 4 +25 : INP = 0 +30 : INP = -4 +35 : INP = -8 +45 : -> READY=1, OUT=15 +46 : -> READY=0 +48 : TRIG = 1, INP = -10 +49 : TRIG = 0 +58 : ENABLE = 0 +83 : -> READY=1, OUT = 1 +84 : -> READY=0 +86 : TRIG = 1 +87 : TRIG = 0 + +[Average mode trigger before calculation ready] +3 : MODE = 1 +4 : INP = 5 +5 : ENABLE = 1, INP = 6 +6 : INP = 7 +7 : INP = 8 +8 : INP = 9 +9 : INP = 10 +10 : TRIG = 1, INP=11 +11 : TRIG = 0 +15 : INP = 12 +16 : TRIG = 1 +17 : TRIG = 0 +18 : -> HEALTH=2 +20 : INP = 13 +25 : INP = 14 +30 : INP = 15 +35 : INP = 16 +54 : ENABLE = 0 +55 : ENABLE = 1 -> HEALTH=0 +56 : INP = 7 +57 : INP = 8 +58 : INP = 9 +59 : INP = 10 +60 : TRIG = 1, INP=11 +61 : TRIG = 0 +65 : INP = 12 +70 : INP = 13 +75 : INP = 14 +80 : INP = 15 +85 : INP = 16 +95 : -> READY=1, OUT=8 +96 : -> READY=0 +100 : TRIG = 1 +101 : TRIG = 0 +135 : -> READY=1, OUT=13 +136 : -> READY=0 + +[Zero division] +2 : MODE = 1 +3 : INP = 20 +4 : ENABLE = 1 +5 : INP = 10 +6 : INP = 5 +7 : INP = 0 +8 : INP = -5 +9 : INP = -10 +10 : TRIG = 1, INP = -20 +11 : TRIG = 0 +45 : -> READY=1, OUT=0 +46 : -> READY=0 +53 : ENABLE = 0 +58 : TRIG = 1 +59 : TRIG = 0 diff --git a/modules/filter/filter_functionality.timing.ini b/modules/filter/filter_functionality.timing.ini new file mode 100644 index 000000000..32a33c990 --- /dev/null +++ b/modules/filter/filter_functionality.timing.ini @@ -0,0 +1,15 @@ +[.] +description: Functionality timing diagrams for FILTER block +scope: filter.block.ini + +[Difference mode 0 output - fun] +3 : MODE = 0 +4 : INP = -10 +5 : ENABLE = 1 +6 : INP = 0 +7 : INP = 10 +8 : INP = 0 +9 : INP = -10 +11 : TRIG = 1 -> OUT=0, READY=1 +12 : TRIG = 0 -> READY=0 +15 : ENABLE = 0 diff --git a/modules/pcap/pcap_documentation.timing.ini b/modules/pcap/pcap_documentation.timing.ini new file mode 100644 index 000000000..470824167 --- /dev/null +++ b/modules/pcap/pcap_documentation.timing.ini @@ -0,0 +1,406 @@ +[.] +description: Documentation timing diagrams for PCAP block +scope: pcap.block.ini + +[Arming and soft disarm] +2 : ENABLE=1 +3 : ARM=0 -> ACTIVE=1 +8 : DISARM=0 -> ACTIVE=0 +9 : ENABLE=0 + +[Arming and hard disarm] +3 : ARM=0 -> ACTIVE=1 +5 : ENABLE=1 +6 : ENABLE=0 -> ACTIVE=0 + +[Capture timestamp] +1 : ENABLE=1 +2 : START_WRITE=0 +# TS_TRIG_LSB +4 : WRITE=0x240 +10 : ARM=0 -> ACTIVE=1 +12 : TRIG=1 +14 : TRIG=0 +16 : TRIG=1 -> DATA=2 +17 : TRIG=0 +20 : -> DATA=6 +22 : ENABLE=0 -> ACTIVE=0 + + +[Capture pos bus entry 5 Value] +2 : START_WRITE=0 +4 : WRITE=0x50 +6 : POS[5]=20 +10 : ARM=0 -> ACTIVE=1 +11 : ENABLE=1 +13 : TRIG=1 +14 : TRIG=0, POS[5]=100 +15 : TRIG=1 +16 : TRIG=0 +17 : -> DATA=20 +18 : TRIG=1, POS[5]=6 +19 : POS[5]=2 -> DATA=100 +22 : TRIG=0 -> DATA=6 +24 : ENABLE=0 -> ACTIVE=0 + +[Capture pos bus entry 11 Difference] +2 : START_WRITE=0 +4 : WRITE=0xB1 +5 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +11 : POS[11]=10 +12 : GATE=1 +13 : POS[11]=20 +14 : TRIG=1 +15 : TRIG=0 +16 : GATE=0, POS[11]=24 +18 : POS[11]=30 -> DATA=10 +20 : POS[11]=22 +21 : GATE=1 +22 : POS[11]=13 +23 : GATE=0, TRIG=1 +25 : TRIG=0 +27 : ENABLE=0 -> ACTIVE=0, DATA=-5 + + +[Capture pos bus entry 3 Sum] +1 : POS[3]=3 +2 : START_WRITE=0 +3 : WRITE=0x32 +7 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +12 : GATE=1 +14 : TRIG=1 +15 : TRIG=0 +16 : GATE=0, POS[3]=4 +17 : POS[3]=5 +18 : GATE=1, POS[3]=6 -> DATA=6 +19 : POS[3]=9 +20 : POS[3]=103, TRIG=1 +21 : TRIG=0 +22 : GATE=0 +23 : POS[3]=102 +24 : TRIG=1 -> DATA=21 +25 : +28 : TRIG=0, ENABLE=0 -> ACTIVE=0, DATA=206 + +[Capture pos bus entry 2 Sum large values] +1 : POS[2]=0x40000000 +2 : START_WRITE=0 +3 : WRITE=0x22 +7 : WRITE=0x23 +8 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +12 : GATE=1 +13 : TRIG=1 +14 : TRIG=0 +16 : TRIG=1 +17 : TRIG=0 -> DATA=0x40000000 +18 : -> DATA=0 +20 : -> DATA=-0x40000000 +21 : -> DATA=0 +26 : TRIG=1 +27 : TRIG=0, POS[2]=-0x40000000 +29 : TRIG=1 +30 : TRIG=0 -> DATA=-0x80000000 +31 : -> DATA=2 +33 : -> DATA=-0x40000000 +34 : TRIG=1 -> DATA=-1 +35 : TRIG=0 +36 : GATE=0 +38 : -> DATA=-0x40000000 +39 : -> DATA=-2 +41 : ENABLE=0 -> ACTIVE=0 + +[Capture pos bus entry 9 Sum shifted] +1 : SHIFT_SUM=1 +2 : START_WRITE=0 +3 : GATE=1 +4 : WRITE=0x92 +6 : POS[9]=27 +8 : WRITE=0x260 +10 : ARM=0 -> ACTIVE=1 +11 : ENABLE=1 +14 : TRIG=1 +15 : TRIG=0 +16 : GATE=0, POS[9]=19 +17 : GATE=1 +18 : GATE=0 -> DATA=40 +19 : TRIG=1, POS[9]=-13 -> DATA=1 +20 : TRIG=0 +21 : GATE=1 +23 : GATE=0, TRIG=1, POS[9]=-9 -> DATA=36 +24 : TRIG=0 -> DATA=1 +25 : TRIG=1 +27 : TRIG=0 -> DATA=-13 +28 : -> DATA=1 +29 : -> DATA=0 +30 : -> DATA=0 +32 : ENABLE=0 -> ACTIVE=0 + +[Capture pos bus entry 2 Sum^2] +1 : POS[2]=-3 +2 : START_WRITE=0 +3 : WRITE=0x26 +6 : WRITE=0x27 +9 : WRITE=0x28 +10 : ARM=0 -> ACTIVE=1 +11 : ENABLE=1 +12 : GATE=1 +14 : TRIG=1 +15 : POS[2]=3, TRIG=0 +16 : POS[2]=4 +17 : POS[2]=5 +18 : POS[2]=6 -> DATA=18 +19 : POS[2]=9 -> DATA=0 +# POS[2]=0x7FFFFFFF +20 : POS[2]=2147483647, TRIG=1 -> DATA=0 +21 : TRIG=0 +24 : -> DATA=176 +25 : -> DATA=0 +26 : -> DATA=0 +28 : TRIG=1 +29 : GATE=0,TRIG=0 +32 : -> DATA=0x00000008 +33 : -> DATA=0xFFFFFFF8 +34 : -> DATA=1 +37 : ENABLE=0 -> ACTIVE=0 + +[Capture pos bus entry 2 Sum^2 Samples shifted] +1 : SHIFT_SUM=1, POS[2]=-3 +2 : START_WRITE=0 +3 : WRITE=0x26 +5 : WRITE=0x27 +7 : WRITE=0x28 +9 : WRITE=0x260 +10 : ARM=0 -> ACTIVE=1 +11 : ENABLE=1 +12 : GATE=1 +14 : TRIG=1 +15 : POS[2]=3, TRIG=0 +16 : POS[2]=4 +17 : POS[2]=5 +18 : POS[2]=6 -> DATA=9 +19 : POS[2]=9 -> DATA=0 +# POS[2]=0x7FFFFFFF +20 : POS[2]=2147483647, TRIG=1 -> DATA=0 +21 : TRIG=0 -> DATA=1 +24 : -> DATA=88 +25 : -> DATA=0 +26 : -> DATA=0 +27 : -> DATA=3 +28 : TRIG=1 +29 : GATE=0,TRIG=0 +32 : -> DATA=0x00000004 +33 : -> DATA=0xFFFFFFFC +34 : -> DATA=0 +35 : -> DATA=4 +37 : ENABLE=0 -> ACTIVE=0 + +[Capture pos bus entry 8 Min] +2 : START_WRITE=0 +3 : GATE=1 +4 : WRITE=0x84 +5 : POS[8]=35 +6 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +11 : POS[8]=10 +13 : POS[8]=20 +14 : TRIG=1 +15 : TRIG=0 +16 : GATE=0, POS[8]=8 +18 : POS[8]=30 -> DATA=10 +19 : TRIG=1 +20 : POS[8]=22, TRIG=0 +21 : GATE=1 +22 : POS[8]=21 +23 : GATE=0, TRIG=1 -> DATA=20 +24 : TRIG=0 +25 : TRIG=1 +27 : TRIG=0 -> DATA=21 +29 : -> DATA=0x7FFFFFFF +31 : ENABLE=0 -> ACTIVE=0 + + +[Capture pos bus entry 4 Max] +2 : START_WRITE=0 +3 : GATE=1 +4 : WRITE=0x45 +5 : POS[4]=35 +6 : ENABLE=1 +10 : ARM=0, POS[4]=10 -> ACTIVE=1 +13 : POS[4]=20 +14 : TRIG=1 +15 : TRIG=0 +16 : GATE=0, POS[4]=24 +18 : POS[4]=30 -> DATA=20 +19 : TRIG=1 +20 : POS[4]=22, TRIG=0 +21 : GATE=1 +22 : POS[4]=21 +23 : GATE=0, TRIG=1 -> DATA=20 +24 : TRIG=0 +25 : TRIG=1 +27 : TRIG=0 -> DATA=22 +29 : -> DATA=-0x80000000 +31 : ENABLE=0 -> ACTIVE=0 + +[Capture gate length] +2 : START_WRITE=0 +3 : GATE=1 +4 : WRITE=0x260 +6 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +14 : TRIG=1 +15 : TRIG=0 +16 : GATE=0 +17 : GATE=1 +18 : GATE=0 -> DATA=4 +19 : TRIG=1 +20 : TRIG=0 +21 : GATE=1 +23 : GATE=0, TRIG=1 -> DATA=3 +24 : TRIG=0 +25 : TRIG=1 +27 : TRIG=0 -> DATA=2 +29 : -> DATA=0 +31 : ENABLE=0 -> ACTIVE=0 + +[Capture more timestamps] +1 : START_WRITE=0 +2 : GATE=1, WRITE=0x200 +5 : WRITE=0x220 +8 : WRITE=0x240 +9 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +14 : TRIG=1 +15 : TRIG=0 +16 : GATE=0 +17 : GATE=1 +18 : GATE=0 -> DATA=0 +19 : TRIG=1 -> DATA=4 +20 : TRIG=0 -> DATA=4 +21 : GATE=1 +23 : GATE=0, TRIG=1 -> DATA=4 +24 : TRIG=0 -> DATA=8 +25 : -> DATA=9 +26 : TRIG=1 +27 : -> DATA=11 +28 : TRIG=0 -> DATA=13 +29 : -> DATA=13 +30 : -> DATA=-1 +31 : -> DATA=-1 +32 : -> DATA=16 +34 : ENABLE=0 -> ACTIVE=0 + +[Capture bit bus quadrant 0] +2 : START_WRITE=0 +4 : WRITE=0x270 +10 : ARM=0 -> ACTIVE=1 +11 : ENABLE=1 +13 : TRIG=1 +14 : TRIG=0 +15 : TRIG=1, BIT[2]=1 +# BIT[2] appears as bit 2 (0x4) of BITS0 +16 : TRIG=0, BIT[4]=1 +17 : -> DATA=0 +18 : TRIG=1 +# BIT[4] appears as bit 4 (0x10) of BITS0 +19 : TRIG=0 -> DATA=0x4 +21 : TRIG=1, BIT[2]=0 +22 : TRIG=0 -> DATA=0x14 +25 : -> DATA=0x10 +27 : ENABLE=0 -> ACTIVE=0 + +[Capture bit bus all quadrants] +1 : START_WRITE=0 +2 : WRITE=0x270 +5 : WRITE=0x280 +8 : WRITE=0x290 +11 : WRITE=0x2A0 +12 : ARM=0, ENABLE=1 -> ACTIVE=1 +13 : TRIG=1, BIT[2]=1 +# BIT[2] appears as bit 2 (0x4) of BITS0 +14 : TRIG=0 +17 : TRIG=1, BIT[58]=1 -> DATA=0x4 +18 : TRIG=0 -> DATA=0 +# BIT[58] appears as bit 26 (0x4000000) of BITS1 +19 : -> DATA=0 +20 : -> DATA=0 +21 : TRIG=1, BIT[101]=1 -> DATA=0x4 +22 : TRIG=0 -> DATA=0x4000000 +23 : -> DATA=0 +24 : -> DATA=0 +# BIT[101] appears as bit 5 (0x20) of BITS3 +25 : TRIG=1, BIT[10]=1 -> DATA=0x4 +# BIT[10] appears as bit 10 (0x400) of BITS0 +26 : TRIG=0 -> DATA=0x4000000 +27 : -> DATA=0 +28 : -> DATA=0x20 +29 : -> DATA=0x404 +30 : -> DATA=0x4000000 +31 : -> DATA=0x0 +32 : -> DATA=0x20 +34 : ENABLE=0 -> ACTIVE=0 + +[Gate and capture signals the same] +2 : START_WRITE=0 +4 : WRITE=0x11 +5 : ENABLE=1 +# Capture on falling edge of TRIG +7 : TRIG_EDGE=1 +10 : ARM=0 -> ACTIVE=1 +11 : POS[1]=10 +12 : GATE=1, TRIG=1 +13 : POS[1]=20 +14 : GATE=0, TRIG=0 +16 : POS[1]=24 +18 : POS[1]=30 -> DATA=10 +21 : POS[1]=22, GATE=1, TRIG=1 +23 : POS[1]=13, GATE=0, TRIG=0 +24 : +27 : -> DATA=-9 +29 : ENABLE=0 -> ACTIVE=0 + +[Gap-less sum] +2 : START_WRITE=0 +4 : WRITE=0x12 +5 : ENABLE=1 +# Capture on either edges of TRIG +7 : TRIG_EDGE=2 +10 : ARM=0 -> ACTIVE=1 +11 : POS[1]=10 +12 : GATE=1 +13 : POS[1]=20 +14 : TRIG=1 +16 : POS[1]=24 +18 : POS[1]=30 -> DATA=30 +21 : POS[1]=22, GATE=0, TRIG=0 +23 : POS[1]=13, GATE=1 +# line added to reset write strobe +25 : TRIG_EDGE=2 -> DATA=178 +26 : GATE=0, TRIG=1 +28 : TRIG=0 +30 : -> DATA=39 +32 : -> DATA=0 +34 : ENABLE=0 -> ACTIVE=0 + + +[Capture too close together] +2 : START_WRITE=0 +4 : WRITE=0x240 +6 : WRITE=0x250 +8 : WRITE=0x260 +9 : ARM=0 -> ACTIVE=1 +11 : ENABLE=1 +12 : TRIG=1 +13 : TRIG=0 +16 : TRIG=1 -> DATA=1 +17 : TRIG=0 -> DATA=0 +18 : TRIG=1 -> DATA=0 +19 : +20 : TRIG=0 -> DATA=5 +21 : -> DATA=0 +22 : -> DATA=0, HEALTH=1, ACTIVE=0 +24 : ENABLE=0 + diff --git a/modules/pcap/pcap_functionality.timing.ini b/modules/pcap/pcap_functionality.timing.ini new file mode 100644 index 000000000..34e317084 --- /dev/null +++ b/modules/pcap/pcap_functionality.timing.ini @@ -0,0 +1,321 @@ +[.] +description: Functionality timing diagrams for PCAP block +scope: pcap.block.ini + +[Capture pos bus entry 5 Value low ENABLE] +2 : START_WRITE=0 +4 : WRITE=0x50 +6 : POS[5]=20 +10 : ARM=0 -> ACTIVE=1 +13 : TRIG=1 +14 : TRIG=0, POS[5]=100 +15 : TRIG=1 +16 : TRIG=0 +18 : TRIG=1, POS[5]=6 +19 : POS[5]=2 +22 : DISARM=0, TRIG=0 -> ACTIVE=0 + +[Capture pos bus entry 2 Sum Sum^2 Samples] +1 : POS[2]=-3 +2 : START_WRITE=0 +3 : WRITE=0x22 +4 : WRITE=0x23 +5 : WRITE=0x26 +6 : WRITE=0x27 +7 : WRITE=0x28 +8 : WRITE=0x260 +10 : ARM=0 -> ACTIVE=1 +11 : ENABLE=1 +12 : GATE=1 +14 : TRIG=1 +15 : POS[2]=3, TRIG=0 +16 : POS[2]=4 +17 : POS[2]=5 +18 : POS[2]=6 -> DATA=-6 +19 : POS[2]=9 -> DATA=-1 +# POS[2]=0x7FFFFFFF +20 : POS[2]=2147483647, TRIG=1 -> DATA=18 +21 : TRIG=0 -> DATA=0 +22 : -> DATA=0 +23 : -> DATA=2 +24 : -> DATA=24 +25 : -> DATA=0 +26 : -> DATA=176 +27 : -> DATA=0 +28 : TRIG=1 -> DATA=0 +29 : GATE=0,TRIG=0 -> DATA=6 +# 0x7FFFFFFF * 8 = 0x3FFFFFFF8 +32 : -> DATA=0xFFFFFFF8 +33 : -> DATA=0x00000003 +# 0x7FFFFFFF * 0x7FFFFFFF = 0x3FFFFFFF00000001 +34 : -> DATA=0x00000008 +35 : -> DATA=0xFFFFFFF8 +36 : -> DATA=0x00000001 +37 : -> DATA=8 +39 : ENABLE=0 -> ACTIVE=0 + +[Capture bit bus all quadrants ENABLE low] +1 : START_WRITE=0 +2 : WRITE=0x270 +5 : WRITE=0x280 +8 : WRITE=0x290 +11 : WRITE=0x2A0 +12 : ARM=0 -> ACTIVE=1 +13 : TRIG=1, BIT[2]=1 +# BIT[2] appears as bit 2 (0x4) of BITS0 +14 : TRIG=0 +17 : TRIG=1, BIT[58]=1 +18 : TRIG=0 +# BIT[58] appears as bit 26 (0x4000000) of BITS1 +21 : TRIG=1, BIT[101]=1 +22 : TRIG=0 +# BIT[101] appears as bit 5 (0x20) of BITS3 +25 : TRIG=1, BIT[10]=1 +# BIT[10] appears as bit 10 (0x400) of BITS0 +26 : DISARM=0, TRIG=0 -> ACTIVE=0 + +[Test ENABLE reset after 1st pulse] +1 : POS[2]=10 +2 : START_WRITE=0 +3 : WRITE=0x22 +8 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +12 : GATE=1 +13 : TRIG=1 +14 : TRIG=0 +17 : -> DATA=10 +19 : ENABLE=0 -> ACTIVE=0 +22 : ENABLE=1 +24 : ARM=0 -> ACTIVE=1 +26 : TRIG=1 +27 : TRIG=0 +30 : -> DATA=20 +36 : TRIG=1 +37 : POS[2]=-20, TRIG=0 +38 : +39 : TRIG=1 +40 : TRIG=0 -> DATA=100 +43 : -> DATA=-30 +44 : TRIG=1 +45 : TRIG=0 +48 : -> DATA=-100 +50 : TRIG=1 +51 : TRIG=0 +54 : -> DATA=-120 +57 : GATE=0 +59 : ENABLE=0 -> ACTIVE=0 + +[Test ENABLE reset after 1st pulse no re-arm] +1 : POS[2]=10 +2 : START_WRITE=0 +3 : WRITE=0x22 +8 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +12 : GATE=1 +13 : TRIG=1 +14 : TRIG=0 +17 : -> DATA=10 +19 : ENABLE=0 -> ACTIVE=0 +22 : ENABLE=1 +26 : TRIG=1 +27 : TRIG=0 +36 : TRIG=1 +37 : POS[2]=-20, TRIG=0 +39 : TRIG=1 +40 : TRIG=0 +44 : TRIG=1 +45 : TRIG=0 +50 : TRIG=1 +51 : TRIG=0 +57 : GATE=0 +59 : ENABLE=0 + +[Test ENABLE reset after 3rd pulse] +1 : POS[2]=10 +2 : START_WRITE=0 +3 : WRITE=0x22 +8 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +12 : GATE=1 +13 : TRIG=1 +14 : TRIG=0 +16 : TRIG=1 +17 : TRIG=0 -> DATA=10 +20 : -> DATA=30 +26 : TRIG=1 +27 : TRIG=0, POS[2]=-20 +30 : -> DATA=100 +32 : ENABLE=0 -> ACTIVE=0 +33 : ENABLE=1 +35 : ARM=0 -> ACTIVE=1 +39 : TRIG=1 +40 : TRIG=0 +43 : -> DATA=-80 +44 : TRIG=1 +45 : TRIG=0 +48 : -> DATA=-100 +50 : TRIG=1 +51 : TRIG=0 +54 : -> DATA=-120 +57 : GATE=0 +59 : ENABLE=0 -> ACTIVE=0 + +[Test ENABLE reset after 3rd pulse no re-arm] +1 : POS[2]=10 +2 : START_WRITE=0 +3 : WRITE=0x22 +8 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +12 : GATE=1 +13 : TRIG=1 +14 : TRIG=0 +16 : TRIG=1 +17 : TRIG=0 -> DATA=10 +20 : -> DATA=30 +26 : TRIG=1 +27 : TRIG=0, POS[2]=-20 +30 : -> DATA=100 +32 : ENABLE=0 -> ACTIVE=0 +33 : ENABLE=1 +39 : TRIG=1 +40 : TRIG=0 +44 : TRIG=1 +45 : TRIG=0 +50 : TRIG=1 +51 : TRIG=0 +57 : GATE=0 +59 : ENABLE=0 + +[timestamps re-enable] +1 : START_WRITE=0 +2 : WRITE=0x200 +9 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +14 : GATE=1 +16 : GATE=0 +17 : TRIG=1 +18 : TRIG=0 +20 : GATE=1 +21 : -> DATA=4 +24 : GATE=0, ENABLE=0 -> ACTIVE=0 +35 : ARM=0, ENABLE=1 -> ACTIVE=1 +37 : GATE=1 +40 : GATE=0, TRIG=1 +41 : TRIG=0 +44 : -> DATA=2 +46 : GATE=1 +49 : GATE=0, TRIG=1 +50 : TRIG=0 +53 : -> DATA=11 +55 : ENABLE=0 -> ACTIVE=0 + +[timestamps re-enable no re-arm] +1 : START_WRITE=0 +2 : WRITE=0x200 +9 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +14 : GATE=1 +16 : GATE=0 +17 : TRIG=1 +18 : TRIG=0 +20 : GATE=1 +21 : -> DATA=4 +24 : GATE=0, ENABLE=0 -> ACTIVE=0 +35 : ENABLE=1 +37 : GATE=1 +40 : GATE=0, TRIG=1 +41 : TRIG=0 +46 : GATE=1 +49 : GATE=0, TRIG=1 +53 : ENABLE=0 + +[timestamps disarm re-arm] +1 : START_WRITE=0, ENABLE=1 +2 : WRITE=0x200 +10 : ARM=0 -> ACTIVE=1 +14 : GATE=1 +16 : GATE=0 +17 : TRIG=1 +18 : TRIG=0 +20 : GATE=1 +21 : -> DATA=4 +24 : GATE=0, DISARM=0 -> ACTIVE=0 +35 : ARM=0 -> ACTIVE=1 +37 : GATE=1 +40 : GATE=0, TRIG=1 +41 : TRIG=0 +44 : -> DATA=2 +46 : GATE=1 +49 : GATE=0, TRIG=1 +50 : TRIG=0 +53 : -> DATA=11 +55 : ENABLE=0 -> ACTIVE=0 + +[test disable Difference] +2 : START_WRITE=0 +4 : WRITE=0xB1 +5 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +11 : POS[11]=10 +12 : GATE=1 +14 : POS[11]=11 +15 : GATE=0 +18 : ENABLE=0 -> ACTIVE=0 +21 : ENABLE=1, ARM=0 -> ACTIVE=1 +22 : GATE=1 +23 : GATE=0, POS[11]=14 +25 : TRIG=1, GATE=1, POS[11]=19 +27 : TRIG=0, POS[11]=18 +28 : GATE=0, TRIG=1 +29 : -> DATA=3 +30 : TRIG=0 +32 : ENABLE=0 -> DATA=-1, ACTIVE=0 + +[test disable min] +2 : START_WRITE=0 +3 : GATE=1 +4 : WRITE=0x84 +5 : POS[8]=35 +6 : ENABLE=1 +10 : ARM=0 -> ACTIVE=1 +11 : POS[8]=10 +13 : POS[8]=20 +14 : TRIG=1 +15 : TRIG=0 +16 : POS[8]=8 +18 : POS[8]=30 -> DATA=10 +20 : ENABLE=0 -> ACTIVE=0 +24 : ENABLE=1, ARM=0 -> ACTIVE=1 +29 : TRIG=1 +30 : POS[8]=22, TRIG=0 +32 : POS[8]=21 +33 : GATE=0, TRIG=1 -> DATA=30 +34 : TRIG=0 +35 : TRIG=1 +37 : TRIG=0 -> DATA=21 +39 : ENABLE=0 -> DATA=0x7FFFFFFF, ACTIVE=0 + +[test disable max] +2 : START_WRITE=0 +3 : GATE=1 +4 : WRITE=0x45 +5 : POS[4]=35 +6 : ENABLE=1 +10 : ARM=0, POS[4]=10 -> ACTIVE=1 +13 : POS[4]=20 +14 : TRIG=1 +15 : TRIG=0 +16 : POS[4]=24 +18 : POS[4]=30 -> DATA=20 +19 : TRIG=1 +20 : POS[4]=22, TRIG=0 +23 : -> DATA=30 +25 : ENABLE=0 -> ACTIVE=0 +28 : ENABLE=1 +29 : ARM=0 -> ACTIVE=1 +32 : POS[4]=21 +33 : GATE=0, TRIG=1 +34 : TRIG=0 +35 : TRIG=1 +37 : TRIG=0 -> DATA=22 +39 : ENABLE=0 -> DATA=-0x80000000, ACTIVE=0 diff --git a/modules/posenc/posenc_documentation.timing.ini b/modules/posenc/posenc_documentation.timing.ini new file mode 100644 index 000000000..6d9e975d8 --- /dev/null +++ b/modules/posenc/posenc_documentation.timing.ini @@ -0,0 +1,148 @@ +[.] +description: Documentation timing diagrams for the posenc block +scope: posenc.block.ini + +[Quadrature rising and falling] +1 : INP=1, PERIOD=2, PROTOCOL=0 +2 : ENABLE=1 -> STATE=1 +4 : INP=6 -> STATE=2 +6 : -> A=1 +8 : -> B=1 +10 : -> A=0 +12 : -> B=0 +14 : -> A=1, STATE=1 +16 : INP=11 -> STATE=2 +18 : -> B=1 +20 : -> A=0 +22 : -> B=0 +24 : -> A=1 +26 : -> B=1, STATE=1 +30 : INP=0 -> STATE=2 +32 : -> B=0 +34 : -> A=0 +36 : -> B=1 +38 : -> A=1 +40 : -> B=0 +42 : -> A=0 +44 : -> B=1 +46 : -> A=1 +48 : -> B=0 +50 : -> A=0 +52 : -> B=1, STATE=1 +60 : ENABLE=0 -> B=0, STATE=0 + +[Step/Direction] +1 : INP=1, PERIOD=2, PROTOCOL=1 +2 : ENABLE=1 -> A=0, B=0, STATE=1 +3 : -> B=1 +4 : INP=6 -> STATE=2, B=0 +6 : -> A=1 +7 : -> A=0 +8 : -> A=1 +9 : -> A=0 +10 : -> A=1 +11 : -> A=0 +12 : -> A=1 +13 : -> A=0 +14 : -> A=1, B=1, STATE=1 +15 : -> A=0 +16 : INP=11 -> B=0, STATE=2 +18 : -> A=1 +19 : -> A=0 +20 : -> A=1 +21 : -> A=0 +22 : -> A=1 +23 : -> A=0 +24 : -> A=1 +25 : -> A=0 +26 : -> A=1, B=1, STATE=1 +27 : -> A=0 +30 : INP=1 -> STATE=2 +32 : -> A=1 +33 : -> A=0 +34 : -> A=1 +35 : -> A=0 +36 : -> A=1 +37 : -> A=0 +38 : -> A=1 +39 : -> A=0 +40 : -> A=1 +41 : -> A=0 +42 : -> A=1 +43 : -> A=0 +44 : -> A=1 +45 : -> A=0 +46 : -> A=1 +47 : -> A=0 +48 : -> A=1 +49 : -> A=0 +50 : -> A=1, STATE=1 +51 : -> A=0 +54 : ENABLE=0 -> B=0, STATE=0 + +[Longer Period Quadrature] +1 : INP=1, PERIOD=5, PROTOCOL=0 +2 : ENABLE=1 -> STATE=1 +10 : INP=10 -> STATE=2 +12 : -> A=1 +17 : -> B=1 +22 : -> A=0 +27 : -> B=0 +32 : -> A=1 +37 : -> B=1 +42 : -> A=0 +47 : -> B=0 +52 : -> A=1, STATE=1 +57 : INP=20 -> STATE=2 +62 : -> B=1 +67 : -> A=0 +72 : -> B=0 +77 : -> A=1 +82 : -> B=1 +87 : -> A=0 +92 : -> B=0 +97 : -> A=1 +100 : ENABLE=0 -> A=0, STATE=0 + +[Longer Period Step/Direction] +1 : INP=1, PERIOD=5, PROTOCOL=1 +2 : ENABLE=1 -> A=0, B=0, STATE=1 +3 : -> B=1 +10 : INP=10 -> B=0, STATE=2 +12 : -> A=1 +13 : -> A=0 +17 : -> A=1 +18 : -> A=0 +22 : -> A=1 +23 : -> A=0 +27 : -> A=1 +28 : -> A=0 +32 : -> A=1 +33 : -> A=0 +37 : -> A=1 +38 : -> A=0 +42 : -> A=1 +43 : -> A=0 +47 : -> A=1 +48 : -> A=0 +52 : -> A=1,B=1, STATE=1 +53 : -> A=0 +57 : INP=20 -> B=0, STATE=2 +62 : -> A=1 +63 : -> A=0 +67 : -> A=1 +68 : -> A=0 +72 : -> A=1 +73 : -> A=0 +77 : -> A=1 +78 : -> A=0 +82 : -> A=1 +83 : -> A=0 +87 : -> A=1 +88 : -> A=0 +92 : -> A=1 +93 : -> A=0 +97 : -> A=1 +98 : -> A=0 +100 : ENABLE=0 -> STATE=0 + diff --git a/modules/posenc/posenc_functionality.timing.ini b/modules/posenc/posenc_functionality.timing.ini new file mode 100644 index 000000000..d4ba3cc47 --- /dev/null +++ b/modules/posenc/posenc_functionality.timing.ini @@ -0,0 +1,81 @@ +[.] +description: Documentation timing diagrams for the posenc block +scope: posenc.block.ini + +[Quadrature rising and falling. Period set to 1] +1 : INP=1, PERIOD=1, PROTOCOL=0 +2 : ENABLE=1 -> STATE=1 +4 : INP=6 -> STATE=2 +5 : -> A=1 +6 : -> B=1 +7 : -> A=0 +8 : -> B=0 +9 : -> A=1, STATE=1 +16 : INP=11 -> STATE=2 +17 : -> B=1 +18 : -> A=0 +19 : -> B=0 +20 : -> A=1 +21 : -> B=1, STATE=1 +30 : INP=0 -> STATE=2 +31 : -> B=0 +32 : -> A=0 +33 : -> B=1 +34 : -> A=1 +35 : -> B=0 +36 : -> A=0 +37 : -> B=1 +38 : -> A=1 +39 : -> B=0 +40 : -> A=0 +41 : -> B=1, STATE=1 +60 : ENABLE=0 -> B=0, STATE=0 + +[Step/Direction PERIOD 1] +1 : INP=1, PERIOD=2, PROTOCOL=1 +2 : ENABLE=1 -> A=0, B=0, STATE=1 +3 : -> B=1 +4 : INP=6 -> STATE=2, B=0 +6 : -> A=1 +7 : -> A=0 +8 : -> A=1 +9 : -> A=0 +10 : -> A=1 +11 : -> A=0 +12 : -> A=1 +13 : -> A=0 +14 : -> A=1, B=1, STATE=1 +15 : -> A=0 +16 : INP=11 -> B=0, STATE=2 +18 : -> A=1 +19 : -> A=0 +20 : -> A=1 +21 : -> A=0 +22 : -> A=1 +23 : -> A=0 +24 : -> A=1 +25 : -> A=0 +26 : -> A=1, B=1, STATE=1 +27 : -> A=0 +30 : INP=1 -> STATE=2 +32 : -> A=1 +33 : -> A=0 +34 : -> A=1 +35 : -> A=0 +36 : -> A=1 +37 : -> A=0 +38 : -> A=1 +39 : -> A=0 +40 : -> A=1 +41 : -> A=0 +42 : -> A=1 +43 : -> A=0 +44 : -> A=1 +45 : -> A=0 +46 : -> A=1 +47 : -> A=0 +48 : -> A=1 +49 : -> A=0 +50 : -> A=1, STATE=1 +51 : -> A=0 +54 : ENABLE=0 -> B=0, STATE=0 diff --git a/modules/qdec/qdec_documentation.timing.ini b/modules/qdec/qdec_documentation.timing.ini new file mode 100644 index 000000000..e251e6ef2 --- /dev/null +++ b/modules/qdec/qdec_documentation.timing.ini @@ -0,0 +1,115 @@ +[.] +description: Documentation timing diagrams for the qdec block +scope: qdec.block.ini + +[Up then Down] +1 : LINKUP_INCR=1 -> HOMED=0 +2 : SETP=1, LINKUP_INCR=1 -> OUT=1, HOMED=1 +9 : A=1 +11 : -> OUT=2 +17 : B=1 +19 : -> OUT=3 +25 : A=0 +27 : -> OUT=4 +33 : B=0 +35 : -> OUT=5 +41 : A=1 +43 : -> OUT=6 +49 : B=1 +51 : -> OUT=7 +57 : A=0 +59 : -> OUT=8 +65 : B=0 +67 : -> OUT=9 +73 : A=1 +75 : -> OUT=10 +85 : A=0 +87 : -> OUT=9 +93 : B=1 +95 : -> OUT=8 +101 : A=1 +103 : -> OUT=7 +109 : B=0 +111 : -> OUT=6 + +[Up then down with reset and change of Set Point] +1 : RST_ON_Z=1, LINKUP_INCR=1 -> HOMED=0 +2 : SETP=1, RST_ON_Z=1, LINKUP_INCR=1 -> OUT=1, HOMED=1 +9 : A=1 +11 : -> OUT=2 +17 : B=1 +19 : -> OUT=3 +25 : A=0 +27 : -> OUT=4 +33 : B=0 +35 : -> OUT=5 +41 : A=1 +43 : -> OUT=6 +49 : B=1 +51 : -> OUT=7 +52 : LINKUP_INCR=0 -> OUT=7, HOMED=0 +53 : LINKUP_INCR=1 -> OUT=7, HOMED=0 +57 : A=0, Z=1 -> OUT=0, HOMED=1 +59 : Z=0 -> OUT=1 +65 : B=0 +67 : -> OUT=2 +73 : A=1 +75 : -> OUT=3 +85 : A=0 +87 : SETP=55 -> OUT=55, HOMED=1 +93 : B=1 +95 : -> OUT=54 +101 : A=1 +103 : -> OUT=53 +109 : B=0 +111 : -> OUT=52 + +[No Set Point] +3 : A=1, LINKUP_INCR=1 +5 : B=1 ->OUT=1, HOMED=0 +7 : A=0 ->OUT=2 +9 : B=0 ->OUT=3 +11 : A=1 ->OUT=4 +13 : B=1 ->OUT=5 +15 : A=0 ->OUT=6 +17 : B=0 ->OUT=7 +19 : A=1 ->OUT=8 +21 : B=1 ->OUT=9 +23 : A=0 ->OUT=10 +25 : B=0 ->OUT=11 +27 : A=1 ->OUT=12 +29 : B=1 ->OUT=13 +31 : ->OUT=14 + +[Variable quadrature period] +3 : A=1, LINKUP_INCR=1 +5 : -> OUT=1, HOMED=0 +10 : B=1 +12 : A=0 -> OUT=2 +14 : -> OUT=3 +17 : B=0 +19 : -> OUT=4 +30 : A=1 +32 : -> OUT=5 +35 : B=1 +37 : -> OUT=6 +38 : A=0 +40 : -> OUT=7 +42 : B=0 +44 : -> OUT=8 +45 : A=1 +47 : -> OUT=9 +49 : B=1 +51 : -> OUT=10 + +[Faster input than output] + +3 : A=1, LINKUP_INCR=1 +4 : B=1 +5 : A=0 -> OUT=1, HOMED=0 +6 : B=0 +7 : A=1 -> OUT=2 +8 : B=1 +9 : A=0 -> OUT=3 +10 : B=0 +11 : -> OUT=4 diff --git a/modules/qdec/qdec_functionality.timing.ini b/modules/qdec/qdec_functionality.timing.ini new file mode 100644 index 000000000..8c0082bd0 --- /dev/null +++ b/modules/qdec/qdec_functionality.timing.ini @@ -0,0 +1,15 @@ +[.] +description: Functionality timing diagrams for the qdec block +scope: qdec.block.ini + +[count below zero] + +3 : B=1, LINKUP_INCR=1 +5 : A=1 -> OUT=-1, HOMED=0 +7 : B=0 -> OUT=-2 +9 : A=0 -> OUT=-3 +11 : B=1 -> OUT=-4 +13 : A=1 -> OUT=-5 +15 : B=0 -> OUT=-6 +17 : A=0 -> OUT=-7 +19 : -> OUT=-8 diff --git a/modules/seq/seq_documentation.timing.ini b/modules/seq/seq_documentation.timing.ini new file mode 100644 index 000000000..88a30eef7 --- /dev/null +++ b/modules/seq/seq_documentation.timing.ini @@ -0,0 +1,360 @@ +[.] +description: Documentation timing diagrams for the seq block +scope: seq.block.ini + +[3 evenly spaced pulses] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0003 +5 : TABLE_DATA=0x100003 +6 : TABLE_DATA=0 +7 : TABLE_DATA=5 +8 : TABLE_DATA=5 +9 : TABLE_LENGTH=4 +10 : -> STATE=1 +12 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, OUTA=1, TABLE_LINE=1, TABLE_REPEAT=1, STATE=3 +17 : -> OUTA=0, STATE=4 +22 : -> OUTA=1, LINE_REPEAT=2, STATE=3 +27 : -> OUTA=0, STATE=4 +32 : -> OUTA=1, LINE_REPEAT=3, STATE=3 +37 : -> OUTA=0, STATE=4 +42 : -> ACTIVE=0, STATE=1 +47 : ENABLE=0 + +[Irregular pulses] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x81 (OUT1=A, OUT2=B) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0002 +5 : TABLE_DATA=0x8100002 +6 : TABLE_DATA=0 +7 : TABLE_DATA=5 +8 : TABLE_DATA=2 + +# OUT = 0x3 (OUT1=AB) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0003 +9 : TABLE_DATA=0x300003 +10 : TABLE_DATA=0 +11 : TABLE_DATA=1 +12 : TABLE_DATA=2 + +13 : TABLE_LENGTH=8 +14 : -> STATE=1 +22 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, TABLE_LINE=1, OUTA=1, TABLE_REPEAT=1, STATE=3 +27 : -> OUTA=0, OUTB=1, STATE=4 +29 : -> OUTA=1, OUTB=0, LINE_REPEAT=2, STATE=3 +34 : -> OUTA=0, OUTB=1, STATE=4 +36 : -> OUTA=1, OUTB=1, LINE_REPEAT=1, TABLE_LINE=2, STATE=3 +37 : -> OUTA=0, OUTB=0, STATE=4 +39 : -> OUTA=1, OUTB=1, LINE_REPEAT=2, STATE=3 +40 : -> OUTA=0, OUTB=0, STATE=4 +42 : -> OUTA=1, OUTB=1, LINE_REPEAT=3, STATE=3 +43 : -> OUTA=0, OUTB=0, STATE=4 +45 : -> ACTIVE=0, STATE=1 +49 : ENABLE=0 + +[Table repeats] +2 : REPEATS=2 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0002 +5 : TABLE_DATA=0x100002 +6 : TABLE_DATA=0 +7 : TABLE_DATA=5 +8 : TABLE_DATA=2 + +# OUT = 0x80 (OUT2=B) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +9 : TABLE_DATA=0x8000001 +10 : TABLE_DATA=0 +11 : TABLE_DATA=0 +12 : TABLE_DATA=5 + +13 : TABLE_LENGTH=8 +14 : -> STATE=1 +22 : ENABLE=1 -> OUTA=1, ACTIVE=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=1, STATE=3 +27 : -> OUTA=0, STATE=4 +29 : -> OUTA=1, LINE_REPEAT=2, STATE=3 +34 : -> OUTA=0, STATE=4 +36 : -> OUTB=1, LINE_REPEAT=1, TABLE_LINE=2 +41 : -> OUTB=0, OUTA=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=2, STATE=3 +46 : -> OUTA=0, STATE=4 +48 : -> OUTA=1, LINE_REPEAT=2, STATE=3 +53 : -> OUTA=0, STATE=4 +55 : -> OUTB=1, LINE_REPEAT=1, TABLE_LINE=2 +60 : -> OUTB=0, ACTIVE=0, STATE=1 +62 : ENABLE=0 + +[Using all 6 outputs] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0xC1 (OUT1=A, OUT2=AB) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +5 : TABLE_DATA=0xC100001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=3 +8 : TABLE_DATA=4 + +# OUT = 0x3C7 (OUT1=ABC, OUT2=ABCD) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +9 : TABLE_DATA=0x3C700001 +10 : TABLE_DATA=0 +11 : TABLE_DATA=5 +12 : TABLE_DATA=6 + +# OUT = 0xFDF (OUT1=ABCDE, OUT2=ABCDEF) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +13 : TABLE_DATA=0xFDF00001 +14 : TABLE_DATA=0 +15 : TABLE_DATA=7 +16 : TABLE_DATA=8 + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +25 : ENABLE=1 -> ACTIVE=1, TABLE_LINE=1, OUTA=1, LINE_REPEAT=1, TABLE_REPEAT=1, STATE=3 +28 : -> OUTB=1, STATE=4 +32 : -> OUTC=1, TABLE_LINE=2, STATE=3 +37 : -> OUTD=1, STATE=4 +43 : -> OUTE=1, TABLE_LINE=3, STATE=3 +50 : -> OUTF=1, STATE=4 +58 : -> OUTA=0, OUTB=0, OUTC=0, OUTD=0, OUTE=0, OUTF=0, ACTIVE=0, STATE=1 +65 : ENABLE=0 + + +[Waiting on bit inputs] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x2 (BITA=1) +# REPEATS = 0x0003 +5 : TABLE_DATA=0x120003 +6 : TABLE_DATA=0 +7 : TABLE_DATA=2 +8 : TABLE_DATA=1 + +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x4 (BITB=1) +# REPEATS = 0x0001 +9 : TABLE_DATA=0x240001 +10 : TABLE_DATA=0 +11 : TABLE_DATA=3 +12 : TABLE_DATA=2 + +13 : TABLE_LENGTH=8 +14 : -> STATE=1 +15 : ENABLE=1 -> STATE=2, ACTIVE=1, TABLE_LINE=1, LINE_REPEAT=1, TABLE_REPEAT=1 +18 : BITA=1 -> STATE=3, OUTA=1 +19 : BITA=0 +20 : -> STATE=4, OUTA=0 +21 : -> STATE=2, LINE_REPEAT=2 +27 : BITA=1 -> STATE=3, OUTA=1 +29 : -> STATE=4, OUTA=0 +30 : -> STATE=3, OUTA=1, LINE_REPEAT=3 +32 : -> STATE=4, OUTA=0 +33 : BITB=1 -> STATE=3, OUTB=1, TABLE_LINE=2, LINE_REPEAT=1 +34 : BITB=0 +36 : -> STATE=4, OUTB=0 +38 : -> STATE=1, ACTIVE=0 +41 : BITA=0 +44 : ENABLE=0 + +[Table based position compare] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x80 (OUT2=B) +# TRIGGER = 0x7 (POSA>=POSITION) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x8070001 +6 : TABLE_DATA=20 +7 : TABLE_DATA=0 +8 : TABLE_DATA=4 + +# OUT = 0x83 (OUT1=AB, OUT2=B) +# TRIGGER = 0 (Immediate) +# REPEATS = 0x0003 +9 : TABLE_DATA=0x8300003 +10 : TABLE_DATA=0 +11 : TABLE_DATA=1 +12 : TABLE_DATA=3 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0002 +13 : TABLE_DATA=0x180002 +14 : TABLE_DATA=10 +15 : TABLE_DATA=1 +16 : TABLE_DATA=3 + + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +19 : ENABLE=1 -> ACTIVE=1, TABLE_LINE=1, LINE_REPEAT=1, TABLE_REPEAT=1, STATE=2 +20 : POSA=19 +23 : POSA=20 -> OUTB=1, STATE=4 +27 : -> OUTA=1, TABLE_LINE=2, STATE=3 +28 : -> OUTA=0, STATE=4 +31 : POSA=19 -> OUTA=1, LINE_REPEAT=2, STATE=3 +32 : -> OUTA=0, STATE=4 +35 : POSA=16 -> OUTA=1, LINE_REPEAT=3, STATE=3 +36 : -> OUTA=0, STATE=4 +39 : POSA=12 -> TABLE_LINE=3, LINE_REPEAT=1, STATE=2 +43 : POSA=9 -> OUTA=1, OUTB=0, STATE=3 +44 : -> OUTA=0, STATE=4 +47 : -> OUTA=1, LINE_REPEAT=2, STATE=3 +48 : POSA=7 -> OUTA=0, STATE=4 +51 : -> ACTIVE=0, STATE=1 +55 : ENABLE=0 + +[Prescaled pulses] +2 : REPEATS=1, PRESCALE=10 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0002 +5 : TABLE_DATA=0x100002 +6 : TABLE_DATA=0 +7 : TABLE_DATA=1 +8 : TABLE_DATA=1 + +9 : TABLE_LENGTH=4 +10 : -> STATE=1 +12 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, OUTA=1, TABLE_LINE=1, TABLE_REPEAT=1, STATE=3 +22 : -> OUTA=0, STATE=4 +32 : -> OUTA=1, LINE_REPEAT=2, STATE=3 +42 : -> OUTA=0, STATE=4 +52 : -> ACTIVE=0, STATE=1 +57 : ENABLE=0 + +[Infinite repeats of a row interrupted] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0000 +5 : TABLE_DATA=0x100000 +6 : TABLE_DATA=0 +7 : TABLE_DATA=5 +8 : TABLE_DATA=5 + +9 : TABLE_LENGTH=4 +10 : -> STATE=1 +12 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, OUTA=1, TABLE_LINE=1, TABLE_REPEAT=1, STATE=3 +17 : -> OUTA=0, STATE=4 +22 : -> OUTA=1, LINE_REPEAT=2, STATE=3 +27 : -> OUTA=0, STATE=4 +32 : -> OUTA=1, LINE_REPEAT=3, STATE=3 +34 : ENABLE=0 -> ACTIVE=0, OUTA=0, STATE=1 + +[Infinite repeats of a table interrupted] +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x40 (OUT2=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x4000001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=0 +8 : TABLE_DATA=5 + +# OUT = 0x0 (OUT1=0) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0002 +9 : TABLE_DATA=0x000002 +10 : TABLE_DATA=0 +11 : TABLE_DATA=0 +12 : TABLE_DATA=3 + +13 : TABLE_LENGTH=8 +14 : -> STATE=1 +17 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=1, OUTA=1, STATE=4 +22 : -> OUTA=0, TABLE_LINE=2 +25 : -> LINE_REPEAT=2 +28 : -> OUTA=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=2 +33 : -> OUTA=0, TABLE_LINE=2 +36 : -> LINE_REPEAT=2 +39 : -> OUTA=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=3 +41 : ENABLE=0 -> ACTIVE=0, OUTA=0, STATE=1 + +[Restarting the same table] +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x100001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=5 +8 : TABLE_DATA=5 + +9 : TABLE_LENGTH=4 +10 : -> STATE=1 +13 : ENABLE=1 -> ACTIVE=1, TABLE_REPEAT=1, OUTA=1, LINE_REPEAT=1, TABLE_LINE=1, STATE=3 +18 : -> OUTA=0, STATE=4 +23 : -> OUTA=1, TABLE_REPEAT=2, STATE=3 +25 : ENABLE=0 -> ACTIVE=0, OUTA=0, STATE=1 +29 : ENABLE=1 -> ACTIVE=1, TABLE_REPEAT=1, OUTA=1, STATE=3 +34 : -> OUTA=0, STATE=4 +39 : -> OUTA=1, TABLE_REPEAT=2, STATE=3 +40 : ENABLE=0 -> ACTIVE=0, OUTA=0, STATE=1 + + +############### CHANGED THE CODE BELOW BECAUSE THE ENABLE_RISE GOES ACTIVE WHILST STILL IN STATE LOAD_TABLE +[Rewriting a table] +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x100001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=5 +8 : TABLE_DATA=5 + +9 : TABLE_LENGTH=4 +10 : -> STATE=1 +13 : ENABLE=1 -> STATE=3, ACTIVE=1, TABLE_REPEAT=1, OUTA=1, TABLE_LINE=1, LINE_REPEAT=1 +18 : -> STATE=4, OUTA=0 +23 : -> STATE=3, OUTA=1, TABLE_REPEAT=2 +25 : TABLE_START=1 +26 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +27 : TABLE_DATA=0x100001 +28 : TABLE_DATA=0 -> STATE=4, OUTA=0, TABLE_REPEAT=2 +29 : TABLE_DATA=8 +30 : TABLE_DATA=2 +31 : TABLE_LENGTH=4 +32 : -> STATE=3, OUTA=1, TABLE_REPEAT=1 +40 : -> STATE=4, OUTA=0 +42 : -> STATE=3, OUTA=1, TABLE_REPEAT=2 +43 : ENABLE=0 -> STATE=1, OUTA=0, ACTIVE=0 diff --git a/modules/seq/seq_double_table_documentation.timing.ini b/modules/seq/seq_double_table_documentation.timing.ini new file mode 100644 index 000000000..d59a2e8cc --- /dev/null +++ b/modules/seq/seq_double_table_documentation.timing.ini @@ -0,0 +1,71 @@ +[.] +description: Documentation timing diagrams for the seq block double table feature +scope: seq.block.ini + +[Test case for double table writting while running] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 +# OUT = 0x40 (OUT2=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +5 : TABLE_DATA=0x4000001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=0 +8 : TABLE_DATA=20 +# OUT = 0x00 (OUT2=0) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +9 : TABLE_DATA=0x0000001 +10 : TABLE_DATA=0 +11 : TABLE_DATA=0 +12 : TABLE_DATA=20 +13 : TABLE_DATA=0 +14 : TABLE_DATA=0 +15 : TABLE_DATA=0 +16 : TABLE_DATA=0 +17 : TABLE_LENGTH=12 -> CAN_WRITE_NEXT=1 +18 : -> STATE=1 +19 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=1, OUTA=1, STATE=4 + +22 : TABLE_START=1 +23 : TABLE_START=0 +# OUT = 0x80 (OUT2=B) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 16 +24 : TABLE_DATA=0x8000001 +25 : TABLE_DATA=0 +26 : TABLE_DATA=0 +27 : TABLE_DATA=20 +# OUT = 0x00 (OUT2=0) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 16 +28 : TABLE_DATA=0x0000001 +29 : TABLE_DATA=0 +30 : TABLE_DATA=0 +31 : TABLE_DATA=20 +32 : TABLE_DATA=0 +33 : TABLE_DATA=0 +34 : TABLE_DATA=0 +35 : TABLE_DATA=0 +36 : TABLE_LENGTH=12 -> CAN_WRITE_NEXT=0 +39 : -> OUTA=0, TABLE_LINE=2, CAN_WRITE_NEXT=1 +40 : TABLE_START=1 +41 : TABLE_START=0 +# OUT = 0x100 (OUT2=C) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +42 : TABLE_DATA=0x10000001 +43 : TABLE_DATA=0 +44 : TABLE_DATA=0 +45 : TABLE_DATA=20 +46 : TABLE_LENGTH=4 -> CAN_WRITE_NEXT=0 +59 : -> OUTB=1, TABLE_LINE=1 +79 : -> OUTB=0, TABLE_LINE=2 +99 : -> OUTC=1, TABLE_LINE=1 +119 : -> ACTIVE=0, OUTC=0, STATE=1 diff --git a/modules/seq/seq_double_table_functionality.timing.ini b/modules/seq/seq_double_table_functionality.timing.ini new file mode 100644 index 000000000..28daf264a --- /dev/null +++ b/modules/seq/seq_double_table_functionality.timing.ini @@ -0,0 +1,167 @@ +[.] +description: Functionality timing diagrams for the seq block double table feature +scope: seq.block.ini + +[Test case for double table run in one go] +4 : REPEATS=1 +5 : TABLE_START=1 +6 : TABLE_START=0 +# OUT = 0x40 (OUT2=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +7 : TABLE_DATA=0x4000001 +8 : TABLE_DATA=0 +9 : TABLE_DATA=0 +10 : TABLE_DATA=1 +# OUT = 0x80 (OUT2=B) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +11 : TABLE_DATA=0x8000001 +12 : TABLE_DATA=0 +13 : TABLE_DATA=0 +14 : TABLE_DATA=2 +15 : TABLE_DATA=0 +16 : TABLE_DATA=0 +17 : TABLE_DATA=0 +18 : TABLE_DATA=0 +19 : TABLE_LENGTH=12 -> CAN_WRITE_NEXT=1 +20 : -> STATE=1 +21 : TABLE_START=1 +22 : TABLE_START=0 +# OUT = 0x100 (OUT2=C) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +23 : TABLE_DATA=0x10000001 +24 : TABLE_DATA=0 +25 : TABLE_DATA=0 +26 : TABLE_DATA=3 +# OUT = 0x200 (OUT2=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +27 : TABLE_DATA=0x20000001 +28 : TABLE_DATA=0 +29 : TABLE_DATA=0 +30 : TABLE_DATA=4 +31 : TABLE_LENGTH=8 -> CAN_WRITE_NEXT=0 +38 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, OUTA=1, TABLE_LINE=1, TABLE_REPEAT=1, STATE=4 +39 : -> OUTA=0, OUTB=1, TABLE_LINE=2 +41 : -> OUTB=0, OUTC=1, TABLE_LINE=1 +44 : -> OUTC=0, OUTD=1, TABLE_LINE=2 +48 : -> OUTD=0, ACTIVE=0, STATE=1 +56 : ENABLE=0 + +[Test case for double table underrun condition] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 +# OUT = 0x40 (OUT2=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +5 : TABLE_DATA=0x4000001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=0 +8 : TABLE_DATA=20 +# OUT = 0x00 (OUT2=0) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +9 : TABLE_DATA=0x0000001 +10 : TABLE_DATA=0 +11 : TABLE_DATA=0 +12 : TABLE_DATA=20 +13 : TABLE_DATA=0 +14 : TABLE_DATA=0 +15 : TABLE_DATA=0 +16 : TABLE_DATA=0 +17 : TABLE_LENGTH=12 -> CAN_WRITE_NEXT=1 +18 : -> STATE=1 +19 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=1, OUTA=1, STATE=4 +39 : -> TABLE_LINE=2, OUTA=0, CAN_WRITE_NEXT=0 +40 : -> HEALTH=1, ACTIVE=0, STATE=0 + +[Test case for double table underrun condition while writting] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 +# OUT = 0x40 (OUT2=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +5 : TABLE_DATA=0x4000001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=0 +8 : TABLE_DATA=20 +# OUT = 0x00 (OUT2=0) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +9 : TABLE_DATA=0x0000001 +10 : TABLE_DATA=0 +11 : TABLE_DATA=0 +12 : TABLE_DATA=20 +13 : TABLE_DATA=0 +14 : TABLE_DATA=0 +15 : TABLE_DATA=0 +16 : TABLE_DATA=0 +17 : TABLE_LENGTH=12 -> CAN_WRITE_NEXT=1 +18 : -> STATE=1 +19 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=1, OUTA=1, STATE=4 +24 : TABLE_START=1 +25 : TABLE_START=0 +39 : -> TABLE_LINE=2, OUTA=0, CAN_WRITE_NEXT=0 +40 : -> HEALTH=1, ACTIVE=0, STATE=0 + +[Test case for double table overrun condition] +2 : REPEATS=1 +3 : TABLE_START=1 +4 : TABLE_START=0 +# OUT = 0x40 (OUT2=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +5 : TABLE_DATA=0x4000001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=0 +8 : TABLE_DATA=20 +# OUT = 0x00 (OUT2=0) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 20 +9 : TABLE_DATA=0x0000001 +10 : TABLE_DATA=0 +11 : TABLE_DATA=0 +12 : TABLE_DATA=20 +13 : TABLE_DATA=0 +14 : TABLE_DATA=0 +15 : TABLE_DATA=0 +16 : TABLE_DATA=0 +17 : TABLE_LENGTH=12 -> CAN_WRITE_NEXT=1 +18 : -> STATE=1 +19 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, TABLE_LINE=1, TABLE_REPEAT=1, OUTA=1, STATE=4 + +22 : TABLE_START=1 +23 : TABLE_START=0 +# OUT = 0x80 (OUT2=B) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 16 +24 : TABLE_DATA=0x8000001 +25 : TABLE_DATA=0 +26 : TABLE_DATA=0 +27 : TABLE_DATA=20 +# OUT = 0x00 (OUT2=0) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +# TIME2 = 16 +28 : TABLE_DATA=0x0000001 +29 : TABLE_DATA=0 +30 : TABLE_DATA=0 +31 : TABLE_DATA=20 +32 : TABLE_DATA=0 +33 : TABLE_DATA=0 +34 : TABLE_DATA=0 +35 : TABLE_DATA=0 +36 : TABLE_LENGTH=12 -> CAN_WRITE_NEXT=0 +38 : TABLE_START=1 -> HEALTH=2, ACTIVE=0, STATE=0, OUTA=0, TABLE_REPEAT=0, LINE_REPEAT=0, TABLE_LINE=0 +39 : TABLE_START=0 diff --git a/modules/seq/seq_functionality.timing.ini b/modules/seq/seq_functionality.timing.ini new file mode 100644 index 000000000..4fe7c548d --- /dev/null +++ b/modules/seq/seq_functionality.timing.ini @@ -0,0 +1,537 @@ +[.] +description: Functionality timing diagrams for the seq block +scope: seq.block.ini + +[Rewriting table whilst in wait for position trigger] +3 : TABLE_START=1 +4 : TABLE_START=0, PRESCALE=3 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x180001 +6 : TABLE_DATA=20 +7 : TABLE_DATA=1 +8 : TABLE_DATA=1 +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x7 (POSA>=POSITION) +# REPEATS = 0x0002 +9 : TABLE_DATA=0x170002 +10 : TABLE_DATA=20 +11 : TABLE_DATA=5 +12 : TABLE_DATA=5 +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +13 : TABLE_DATA=0x280003 +14 : TABLE_DATA=20 +15 : TABLE_DATA=3 +16 : TABLE_DATA=3 + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +25 : ENABLE=1 -> STATE=3, ACTIVE=1, TABLE_REPEAT=1, OUTA=1, LINE_REPEAT=1, TABLE_LINE=1 +28 : -> STATE=4, OUTA=0 +31 : -> STATE=2, TABLE_LINE=2 +34 : TABLE_START=1 +37 : TABLE_START=0 +# OUT = 0x8 (OUT1=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +52 : TABLE_DATA=0x800001 +53 : TABLE_DATA=0 +54 : TABLE_DATA=1 +55 : TABLE_DATA=2 + + +# OUT = 0x4 (OUT1=C) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +56 : TABLE_DATA=0x480003 +57 : TABLE_DATA=20 +58 : TABLE_DATA=1 +59 : TABLE_DATA=1 + +65 : TABLE_LENGTH=8 +66 : -> STATE=3, TABLE_REPEAT=1, OUTD=1, TABLE_LINE=1, LINE_REPEAT=1 +69 : -> OUTD=0, STATE=4 +75 : -> OUTC=1, STATE=3, TABLE_LINE=2 +78 : -> OUTC=0, STATE=4 +81 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +84 : -> OUTC=0, STATE=4 +87 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +90 : -> OUTC=0, STATE=4 +93 : -> OUTD=1, STATE=3, TABLE_REPEAT=2, LINE_REPEAT=1, TABLE_LINE=1 +96 : -> OUTD=0, STATE=4 +102 : -> OUTC=1, STATE=3, TABLE_LINE=2 +105 : -> OUTC=0, STATE=4 +108 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +111 : -> OUTC=0, STATE=4 +114 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +117 : -> OUTC=0, STATE=4 +120 : -> OUTD=1, STATE=3, TABLE_REPEAT=3, LINE_REPEAT=1, TABLE_LINE=1 +123 : ENABLE=0 -> STATE=1, ACTIVE=0, OUTD=0 + +[Time set to 1 clock pulse] +3 : TABLE_START=1 +4 : TABLE_START=0, PRESCALE=1 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x180001 +6 : TABLE_DATA=20 +7 : TABLE_DATA=1 +8 : TABLE_DATA=1 +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x7 (POSA>=POSITION) +# REPEATS = 0x0002 +9 : TABLE_DATA=0x170002 +10 : TABLE_DATA=20 +11 : TABLE_DATA=2 +12 : TABLE_DATA=2 +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +13 : TABLE_DATA=0x280003 +14 : TABLE_DATA=20 +15 : TABLE_DATA=3 +16 : TABLE_DATA=3 + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +25 : ENABLE=1 -> STATE=3, ACTIVE=1, TABLE_REPEAT=1, OUTA=1, LINE_REPEAT=1, TABLE_LINE=1 +26 : -> STATE=4, OUTA=0 +27 : -> STATE=2, TABLE_LINE=2 +36 : TABLE_START=1 +37 : TABLE_START=0 +# OUT = 0x8 (OUT1=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +52 : TABLE_DATA=0x800001 +53 : TABLE_DATA=0 +54 : TABLE_DATA=1 +55 : TABLE_DATA=2 + + +# OUT = 0x4 (OUT1=C) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +56 : TABLE_DATA=0x480003 +57 : TABLE_DATA=20 +58 : TABLE_DATA=1 +59 : TABLE_DATA=1 + +65 : TABLE_LENGTH=8 +66 : -> STATE=3, TABLE_REPEAT=1, OUTD=1, TABLE_LINE=1, LINE_REPEAT=1, HEALTH=0, ACTIVE=1 +67 : -> OUTD=0, STATE=4 +69 : -> OUTC=1, STATE=3, TABLE_LINE=2 +70 : -> OUTC=0, STATE=4 +71 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +72 : -> OUTC=0, STATE=4 +73 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +74 : -> OUTC=0, STATE=4 +75 : -> OUTD=1, STATE=3, TABLE_REPEAT=2, LINE_REPEAT=1, TABLE_LINE=1 +76 : -> OUTD=0, STATE=4 +78 : -> OUTC=1, STATE=3, TABLE_LINE=2 +79 : -> OUTC=0, STATE=4 +80 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +81 : -> OUTC=0, STATE=4 +82 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +83 : -> OUTC=0, STATE=4 +84 : -> OUTD=1, STATE=3, TABLE_REPEAT=3, LINE_REPEAT=1, TABLE_LINE=1 +85 : ENABLE=0 -> STATE=1, ACTIVE=0, OUTD=0 + + +[Prescale set to 1, time1 and time2 > 1] +3 : TABLE_START=1 +4 : TABLE_START=0, PRESCALE=1 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x180001 +6 : TABLE_DATA=20 +7 : TABLE_DATA=2 +8 : TABLE_DATA=3 +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x7 (POSA>=POSITION) +# REPEATS = 0x0002 +9 : TABLE_DATA=0x170002 +10 : TABLE_DATA=20 +11 : TABLE_DATA=2 +12 : TABLE_DATA=2 +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +13 : TABLE_DATA=0x280003 +14 : TABLE_DATA=20 +15 : TABLE_DATA=3 +16 : TABLE_DATA=3 + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +25 : ENABLE=1 -> STATE=3, ACTIVE=1, TABLE_REPEAT=1, OUTA=1, LINE_REPEAT=1, TABLE_LINE=1 +27 : -> STATE=4, OUTA=0 +30 : -> STATE=2, TABLE_LINE=2 +36 : TABLE_START=1 +37 : TABLE_START=0 +# OUT = 0x8 (OUT1=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +52 : TABLE_DATA=0x800001 +53 : TABLE_DATA=0 +54 : TABLE_DATA=3 +55 : TABLE_DATA=2 + + +# OUT = 0x4 (OUT1=C) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +56 : TABLE_DATA=0x480003 +57 : TABLE_DATA=20 +58 : TABLE_DATA=4 +59 : TABLE_DATA=4 + +65 : TABLE_LENGTH=8 +66 : ENABLE=1 -> STATE=3, TABLE_REPEAT=1, OUTD=1, TABLE_LINE=1, LINE_REPEAT=1, HEALTH=0, ACTIVE=1 +69 : -> OUTD=0, STATE=4 +71 : -> OUTC=1, STATE=3, TABLE_LINE=2 +75 : -> OUTC=0, STATE=4 +79 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +83 : -> OUTC=0, STATE=4 +87 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +91 : -> OUTC=0, STATE=4 +95 : -> OUTD=1, STATE=3, TABLE_REPEAT=2, LINE_REPEAT=1, TABLE_LINE=1 +98 : -> OUTD=0, STATE=4 +100 : -> OUTC=1, STATE=3, TABLE_LINE=2 +104 : -> OUTC=0, STATE=4 +108 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +112 : -> OUTC=0, STATE=4 +116 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +120 : -> OUTC=0, STATE=4 +124 : -> OUTD=1, STATE=3, TABLE_REPEAT=3, LINE_REPEAT=1, TABLE_LINE=1 +125 : ENABLE=0 -> STATE=1, ACTIVE=0, OUTD=0 + +[Time2 set to 0] +3 : TABLE_START=1 +4 : TABLE_START=0, PRESCALE=1 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x180001 +6 : TABLE_DATA=20 +7 : TABLE_DATA=1 +8 : TABLE_DATA=0 +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x7 (POSA>=POSITION) +# REPEATS = 0x0002 +9 : TABLE_DATA=0x170002 +10 : TABLE_DATA=20 +11 : TABLE_DATA=2 +12 : TABLE_DATA=2 +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +13 : TABLE_DATA=0x280003 +14 : TABLE_DATA=20 +15 : TABLE_DATA=3 +16 : TABLE_DATA=3 + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +25 : ENABLE=1 -> STATE=3, ACTIVE=1, TABLE_REPEAT=1, LINE_REPEAT=1, TABLE_LINE=1, OUTA=1 +26 : -> OUTA=0, STATE=4 +27 : -> STATE=2, TABLE_LINE=2 +36 : TABLE_START=1 +37 : TABLE_START=0 +# OUT = 0x8 (OUT1=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +52 : TABLE_DATA=0x800001 +53 : TABLE_DATA=0 +54 : TABLE_DATA=1 +55 : TABLE_DATA=2 + + +# OUT = 0x4 (OUT1=C) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +56 : TABLE_DATA=0x480003 +57 : TABLE_DATA=20 +58 : TABLE_DATA=1 +59 : TABLE_DATA=0 + +65 : TABLE_LENGTH=8 +66 : -> STATE=3, TABLE_REPEAT=1, OUTD=1, TABLE_LINE=1, LINE_REPEAT=1, ACTIVE=1, HEALTH=0 +67 : -> OUTD=0, STATE=4 +69 : -> OUTC=1, STATE=3, TABLE_LINE=2 +70 : -> OUTC=0, STATE=4 +71 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +72 : -> OUTC=0, STATE=4 +73 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +74 : -> OUTC=0, STATE=4 +75 : -> OUTD=1, STATE=3, TABLE_REPEAT=2, LINE_REPEAT=1, TABLE_LINE=1 +76 : -> OUTD=0, STATE=4 +78 : -> OUTC=1, STATE=3, TABLE_LINE=2 +79 : -> OUTC=0, STATE=4 +80 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +81 : -> OUTC=0, STATE=4 +82 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +83 : -> OUTC=0, STATE=4 +84 : -> OUTD=1, STATE=3, TABLE_REPEAT=3, LINE_REPEAT=1, TABLE_LINE=1 +85 : ENABLE=0 -> STATE=1, ACTIVE=0, OUTD=0 + +[Time1 set to 0] +3 : TABLE_START=1 +4 : TABLE_START=0, PRESCALE=1 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x8180001 +6 : TABLE_DATA=20 +7 : TABLE_DATA=0 +8 : TABLE_DATA=3 +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x7 (POSA>=POSITION) +# REPEATS = 0x0002 +9 : TABLE_DATA=0x170002 +10 : TABLE_DATA=20 +11 : TABLE_DATA=2 +12 : TABLE_DATA=2 +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +13 : TABLE_DATA=0x280003 +14 : TABLE_DATA=20 +15 : TABLE_DATA=3 +16 : TABLE_DATA=3 + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +25 : ENABLE=1 -> STATE=4, ACTIVE=1, TABLE_REPEAT=1, LINE_REPEAT=1, TABLE_LINE=1, OUTB=1 +28 : -> STATE=2, TABLE_LINE=2, OUTB=1 +36 : TABLE_START=1 +37 : TABLE_START=0 +# OUT = 0x8 (OUT1=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +52 : TABLE_DATA=0x800001 +53 : TABLE_DATA=0 +54 : TABLE_DATA=3 +55 : TABLE_DATA=2 + + +# OUT = 0x4 (OUT1=C) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +56 : TABLE_DATA=0x480003 +57 : TABLE_DATA=20 +58 : TABLE_DATA=4 +59 : TABLE_DATA=4 + +65 : TABLE_LENGTH=8 +66 : -> STATE=3, OUTB=0, TABLE_REPEAT=1, OUTD=1, TABLE_LINE=1, LINE_REPEAT=1, ACTIVE=1, HEALTH=0 +69 : -> OUTD=0, STATE=4 +71 : -> OUTC=1, STATE=3, TABLE_LINE=2 +75 : -> OUTC=0, STATE=4 +79 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +83 : -> OUTC=0, STATE=4 +87 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +91 : -> OUTC=0, STATE=4 +95 : -> OUTD=1, STATE=3, TABLE_REPEAT=2, LINE_REPEAT=1, TABLE_LINE=1 +98 : -> OUTD=0, STATE=4 +100 : -> OUTC=1, STATE=3, TABLE_LINE=2 +104 : -> OUTC=0, STATE=4 +108 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +112 : -> OUTC=0, STATE=4 +116 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +120 : -> OUTC=0, STATE=4 +124 : -> OUTD=1, STATE=3, TABLE_REPEAT=3, LINE_REPEAT=1, TABLE_LINE=1 +125 : ENABLE=0 -> STATE=1, ACTIVE=0, OUTD=0 + +[Test case for issue #38] +1 : ENABLE=1 +2 : ENABLE=0 +4 : REPEATS=1 +5 : TABLE_START=1 +6 : TABLE_START=0 +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0002 +7 : TABLE_DATA=0x100002 +8 : TABLE_DATA=0 +9 : TABLE_DATA=5 +10 : TABLE_DATA=5 +11 : TABLE_LENGTH=4 +12 : -> STATE=1 +13 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, OUTA=1, TABLE_LINE=1, TABLE_REPEAT=1, STATE=3 +18 : -> OUTA=0, STATE=4 +23 : -> OUTA=1, LINE_REPEAT=2, STATE=3 +28 : -> OUTA=0, STATE=4 +33 : -> ACTIVE=0, STATE=1 +34 : ENABLE=0 +36 : TABLE_START=1 -> TABLE_REPEAT=0, LINE_REPEAT=0, TABLE_LINE=0 +37 : TABLE_START=0 -> STATE=0 +# Empty table +38 : TABLE_LENGTH=0 +41 : ENABLE=1 +43 : ENABLE=0 + +[Test case for issue #41] +4 : REPEATS=1 +5 : TABLE_START=1 +6 : TABLE_START=0 +# OUT = 0x40 (OUT2=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +7 : TABLE_DATA=0x4000001 +8 : TABLE_DATA=0 +9 : TABLE_DATA=0 +10 : TABLE_DATA=1 +# OUT = 0x80 (OUT2=B) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +11 : TABLE_DATA=0x8000001 +12 : TABLE_DATA=0 +13 : TABLE_DATA=0 +14 : TABLE_DATA=2 +# OUT = 0x100 (OUT2=C) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +15 : TABLE_DATA=0x10000001 +16 : TABLE_DATA=0 +17 : TABLE_DATA=0 +18 : TABLE_DATA=3 +# OUT = 0x200 (OUT2=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +19 : TABLE_DATA=0x20000001 +20 : TABLE_DATA=0 +21 : TABLE_DATA=0 +22 : TABLE_DATA=4 +23 : TABLE_LENGTH=16 +24 : -> STATE=1 +30 : ENABLE=1 -> ACTIVE=1, LINE_REPEAT=1, OUTA=1, TABLE_LINE=1, TABLE_REPEAT=1, STATE=4 +31 : -> OUTA=0, OUTB=1, TABLE_LINE=2 +33 : -> OUTB=0, OUTC=1, TABLE_LINE=3 +36 : -> OUTC=0, OUTD=1, TABLE_LINE=4 +40 : -> OUTD=0, ACTIVE=0, STATE=1 +48 : ENABLE=0 + +[Disabling doesn't mess a table loading] +3 : TABLE_START=1 +4 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x100001 +6 : TABLE_DATA=0 +7 : TABLE_DATA=5 +8 : TABLE_DATA=5 + +9 : TABLE_LENGTH=4 +10 : -> STATE=1 +13 : ENABLE=1 -> STATE=3, ACTIVE=1, TABLE_REPEAT=1, OUTA=1, TABLE_LINE=1, LINE_REPEAT=1 +18 : -> STATE=4, OUTA=0 + +19 : TABLE_START=1 +20 : TABLE_START=0 + +# OUT = 0x1 (OUT1=A) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +21 : TABLE_DATA=0x100001 +22 : TABLE_DATA=0 +23 : TABLE_DATA=8 -> STATE=3, OUTA=1, TABLE_REPEAT=2 +24 : TABLE_DATA=2 +25 : ENABLE=0 -> STATE=1, OUTA=0, ACTIVE=0 +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +26 : TABLE_DATA=0x200001 -> STATE=0 +27 : TABLE_DATA=0 +28 : TABLE_DATA=1 +29 : TABLE_DATA=1 + +30 : TABLE_LENGTH=8 +31 : -> STATE=1 +32 : ENABLE=1 -> STATE=3, OUTA=1, ACTIVE=1, TABLE_REPEAT=1 +40 : -> STATE=4, OUTA=0 +42 : -> STATE=3, OUTB=1, TABLE_LINE=2 +43 : -> STATE=4, OUTB=0 +44 : ENABLE=0 -> STATE=1, ACTIVE=0 + +[Time1 and Time2 set to 0] +3 : TABLE_START=1 +4 : TABLE_START=0, PRESCALE=1 + +# OUT = 0x81 (OUT1=A, OUT2=B) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0001 +5 : TABLE_DATA=0x8180001 +6 : TABLE_DATA=20 +7 : TABLE_DATA=1 +8 : TABLE_DATA=0 +# OUT = 0x41 (OUT1=A, OUT2=A) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0001 +9 : TABLE_DATA=0x4180001 +10 : TABLE_DATA=20 +11 : TABLE_DATA=0 +12 : TABLE_DATA=0 +# OUT = 0x2 (OUT1=B) +# TRIGGER = 0x7 (POSA>=POSITION) +# REPEATS = 0x0003 +13 : TABLE_DATA=0x270003 +14 : TABLE_DATA=20 +15 : TABLE_DATA=3 +16 : TABLE_DATA=3 + +17 : TABLE_LENGTH=12 +18 : -> STATE=1 +25 : ENABLE=1 -> STATE=3, ACTIVE=1, TABLE_REPEAT=1, LINE_REPEAT=1, TABLE_LINE=1, OUTA=1 +26 : -> STATE=4, OUTA=0, OUTB=1 +27 : -> TABLE_LINE=2, OUTA=1, OUTB=0 +28 : -> STATE=2, TABLE_LINE=3 +36 : TABLE_START=1 +37 : TABLE_START=0 +# OUT = 0x8 (OUT1=D) +# TRIGGER = 0x0 (Immediate) +# REPEATS = 0x0001 +52 : TABLE_DATA=0x800001 +53 : TABLE_DATA=0 +54 : TABLE_DATA=1 +55 : TABLE_DATA=2 + + +# OUT = 0x4 (OUT1=C) +# TRIGGER = 0x8 (POSA<=POSITION) +# REPEATS = 0x0003 +56 : TABLE_DATA=0x480003 +57 : TABLE_DATA=20 +58 : TABLE_DATA=1 +59 : TABLE_DATA=0 + +65 : TABLE_LENGTH=8 +66 : -> STATE=3, OUTA=0, TABLE_REPEAT=1, OUTD=1, TABLE_LINE=1, LINE_REPEAT=1, ACTIVE=1, HEALTH=0 +67 : -> OUTD=0, STATE=4 +69 : -> OUTC=1, STATE=3, TABLE_LINE=2 +70 : -> OUTC=0, STATE=4 +71 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +72 : -> OUTC=0, STATE=4 +73 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +74 : -> OUTC=0, STATE=4 +75 : -> OUTD=1, STATE=3, TABLE_REPEAT=2, LINE_REPEAT=1, TABLE_LINE=1 +76 : -> OUTD=0, STATE=4 +78 : -> OUTC=1, STATE=3, TABLE_LINE=2 +79 : -> OUTC=0, STATE=4 +80 : -> OUTC=1, STATE=3, LINE_REPEAT=2 +81 : -> OUTC=0, STATE=4 +82 : -> OUTC=1, STATE=3, LINE_REPEAT=3 +83 : -> OUTC=0, STATE=4 +84 : -> OUTD=1, STATE=3, TABLE_REPEAT=3, LINE_REPEAT=1, TABLE_LINE=1 +85 : ENABLE=0 -> STATE=1, ACTIVE=0, OUTD=0