FreeCalypso > hg > fc-sim-sniff
annotate doc/PPS-catcher-FSM @ 31:ab37fcb71744
fpga/sniffer-pps: add actual F/D control
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 29 Aug 2023 21:22:37 +0000 | 
| parents | f1e7795557b1 | 
| children | c2fc75655937 | 
| rev | line source | 
|---|---|
| 24 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 This document describes the PPS catcher state machine (to be implemented in the | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 sniffer FPGA) in verbal pseudocode. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 INITIAL: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 This state will be entered upon reset (held in this state while RST is low). | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 Must receive 8'h3B to proceed to state T0, otherwise transition to DONE. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 ATR_T0: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 Whatever byte we receive in this state, we latch the upper nibble in the Y | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 register and the lower nibble in the K register - then proceed to TAn. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 ATR_TAn: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 Advance to TBn if Y register indicates no TAn OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 ATR_TBn: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 Advance to TCn if Y register indicates no TBn OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 ATR_TCn: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 Advance to TDn if Y register indicates no TCn OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 ATR_TDn: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 If Y register indicates no TDn, advance to state ATR_HIST. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 ELSE wait for byte; upon byte Rx, do the following: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 - latch the upper nibble in the Y register; | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 - if lower nibble != 0, set TCK present flag; | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 - always go back to TAn. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 ATR_HIST: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 If K == 0, advance to state ATR_TCK. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 ELSE wait for byte; upon byte Rx, decrement K and remain in this state. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 ATR_TCK: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 Advance to READY_FOR_PPS if Have_TCK flag is false OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 READY_FOR_PPS: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 Wait for Rx byte. If the byte equals 8'hFF, proceed to REQ_PPS0, | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 otherwise DONE. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 REQ_PPS0: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 Wait for Rx byte; latch 3 bits of the received byte and proceed to REQ_PPS1. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 REQ_PPS1: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 Advance to REQ_PPS2 if register indicates no PPS1 OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 REQ_PPS2: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 Advance to REQ_PPS3 if register indicates no PPS2 OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 REQ_PPS3: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 Advance to REQ_PCK if register indicates no PPS3 OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 REQ_PCK: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 Wait for Rx byte; ignore the received value and go to READY_FOR_RESP. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 READY_FOR_RESP: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 Wait for Rx byte. If the byte equals 8'hFF, proceed to RESP_PPS0, | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 otherwise DONE. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 RESP_PPS0: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 Wait for Rx byte. If PPS1 indicator bit is cleared, go to DONE. Otherwise, | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 latch the 3 bits like in REQ_PPS0 and proceed to RESP_PPS1. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 RESP_PPS1: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 Wait for Rx byte. The upper 6 bits must match 6'b100101 - if mismatch, go to | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 DONE. If the upper bits match, latch the two lsbs - they will be the speed | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 enhancement multiplier bits - and proceed to RESP_PPS2. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 RESP_PPS2: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 Advance to RESP_PPS3 if register indicates no PPS2 OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 RESP_PPS3: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 Advance to RESP_PCK if register indicates no PPS3 OR we got a byte. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 RESP_PCK: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 Wait for Rx byte. Upon getting this final byte, trigger the speed enhancement | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 switch and go to DONE. | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 DONE: | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 | 
| 
f1e7795557b1
doc/PPS-catcher-FSM: initial description
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 Final state, nothing more happens. | 
