Methods and systems for event-driven recursive continuous-time digital signal processing
View Patent ↗Continuous-time digital systems implemented with separate timing paths and data paths are disclosed. The disclosed continuous-time digital systems, can implement an event-grouping and detection method that can be used feedback systems with propagation delays. By implementing event-detection into a feedback loop of a continuous-time digital system, the system can automatically stop when there is no event in the system. When new events are detected the system can commence operation.
1. A continuous-time digital signal processor comprising:
an event-grouping block, configured to receive a first input timing signal, a second input timing signal, and to generate an intermediate timing signal;
a first time delay block, configured to receive the intermediate timing signal and generate an output timing signal;
a second time delay block, configured to receive the output timing signal and generate the second input timing signal;
a two-channel memory configured to receive a first data input and a second data input and to generate a first intermediate data signal and a second intermediate data signal;
an arithmetic operation block, configured to receive the first intermediate data signal, the second intermediate data signal and to generate an output data signal, the arithmetic operation block comprising:
a scalar block configured to receive the second intermediate data signal and generate a scaled version of the second intermediate data signal; and
an adder configured to receive the first intermediate data signal and the scaled version of the second intermediate data signal, and generate the output data signal; and
a first-in-first-out (FIFO) memory configured to receive the output data signal and to generate the second input data signal.
2. The continuous-time digital signal processor of claim 1 , wherein the adder is configured to receive data at the first intermediate data signal and calculate the output data signal, in response to a pulse on the intermediate timing signal.
3. The continuous-time digital signal processor of claim 1 , wherein the FIFO memory is configured to store data at the output data signal and read out data stored in the FIFO memory, in response to a pulse on the output timing signal.
4. The continuous-time digital signal processor of claim 1 , wherein the two channel memory is configured to output data stored in a first channel at the first intermediate data and to store data at the first data input into the first channel, in response to a pulse received on the first input timing signal, and further configured to output data stored in a second channel at the second intermediate data and to store data at the second data input into the second channel, in response to a pulse received on the second input timing signal.
5. The continuous-time digital signal processor of claim 1 , wherein the first time delay block is configured to generate the output timing signal by delaying the intermediate timing signal by a first delay;
wherein the second time delay block is configured to generate the second input timing signal by delaying the output timing signal by a second delay;
wherein the first delay is shorter than or equal to the second delay.
6. The continuous-time digital signal processor of claim 5 , wherein the first delay is selected based on a propagation delay of the first operation block.
7. The continuous-time digital signal processor of claim 1 , wherein the event-grouping block is configured to generate the intermediate timing signal by propagating a pulse at one of the first input timing signal and the second input timing signal.
8. The continuous-time digital signal processor of claim 1 , wherein, when a pulse is received at the second input timing signal, within a time window from a pulse received at the first input timing signal, the event-grouping block is configured to generate the intermediate timing signal by delaying the second input timing signal by a third delay.
9. The continuous-time digital signal processor of claim 8 , wherein the time window and the third delay are selected based on a propagation delay of the first operation block.
10. The continuous-time digital signal processor of claim 8 , wherein the second delay is selected based on a feedback delay and the propagation delay of the first operation block.
11. The continuous-time digital signal processor of claim 1 , wherein, when a pulse is received at the first input timing signal, within a time window from a pulse received at the second input timing signal, the event-grouping block is configured to generate the intermediate timing signal by delaying the first input timing signal by a third delay.
12. The continuous-time digital signal processor of claim 1 , wherein the intermediate timing signal is generated when the first data input is different than a previous value of the first data input.
13. A method for continuous-time digital signal processing, comprising:
by an event-grouping block, receiving a first input timing signal, a second input timing signal, and generating an intermediate timing signal;
by a first time delay block, receiving the intermediate timing signal and generating an output timing signal;
by a second time delay block, receiving the output timing signal and generating the second input timing signal;
by a two-channel memory, receiving a first data input and a second data input and generating a first intermediate data signal and a second intermediate data signal;
by an arithmetic operation block, receiving the first intermediate data signal, the second intermediate data signal and generating an output data signal;
by a scalar block, receiving the second intermediate data signal and generating a scaled version of the second intermediate data signal;
by an adder, receiving the first intermediate data signal and the scaled version of the second intermediate data signal, and generating the output data signal; and
by a first-in-first-out (FIFO) memory, receiving the output data signal and generating the second input data signal.
14. The method of claim 13 , further comprising, by the adder, receiving data at the first intermediate data signal and calculating the output data signal, in response to a pulse on the intermediate timing signal.
15. The method of claim 13 , further comprising, by the FIFO memory, storing data at the output data signal and reading out data stored in the FIFO memory, in response to a pulse on the output timing signal.
16. The method of claim 13 , further comprising:
by the two channel memory, providing data stored in a first channel at the first intermediate data and storing data at the first data input into the first channel, in response to a pulse received on the first input timing signal; and
by the two channel memory, providing data stored in a second channel at the second intermediate data and storing data at the second data input into the second channel, in response to a pulse received on the second input timing signal.
17. The method of claim 13 , further comprising, by the first time delay block, generating the output timing signal by delaying the intermediate timing signal by a first delay;
wherein the second time delay block is configured to generate the second input timing signal by delaying the output timing signal by a second delay;
wherein the first delay is shorter than or equal to the second delay.
18. The method of claim 17 , wherein the first delay is selected based on a propagation delay of the first operation block.
19. The method of claim 13 , further comprising, by the event-grouping block, generating the intermediate timing signal by propagating a pulse at one of the first input timing signal and the second input timing signal.
20. The method of claim 13 , further comprising, by the event-grouping block, generating the intermediate timing signal by delaying the second input timing signal by a third delay, when a pulse is received at the second input timing signal, within a time window from a pulse received at the first input timing signal.
21. The method of claim 20 , wherein the time window and the third delay are selected based on a propagation delay of the first operation block.
22. The method of claim 20 , wherein the second delay is selected based on a feedback delay and the propagation delay of the first operation block.
23. The method of claim 13 , further comprising, by the event-grouping block, generating the intermediate timing signal by delaying the first input timing signal by a third delay, when a pulse is received at the first input timing signal, within a time window from a pulse received at the second input timing signal.
24. The method of claim 13 , wherein the intermediate timing signal is generated when the first data input is different than a previous value of the first data input.