A state machine for generating signals configured for generating different signals according to the current state of the machine. The state machine is configured to change state both as a function of an internal timer and as a function of signals representative of events external to the state machine.
|
15. A state machine for generating pulse width Modulation (PWM) waveform signals, comprising a configuration module in a hardware real-time module, said state machine generating different PWM waveform signals according to the current state of the machine, and changes state both as a function of an internal timer and as a function of signals representative of events external to the state machine, wherein the levels of said waveform signals are configurable, and wherein the transitions between the states of said state machine are programmable transitions.
1. A system for generating pulse width Modulation (PWM) signals comprising a hardware real time event driven module, said hardware real time event driven module comprising a real time module core comprising a state machine for generating signals, said state machine generating different output signals according to the current state of the machine and changing state both as a function of an internal timer and as a function of signals representative of events external to the state machine, wherein the levels of said output signals are configurable, and wherein the transitions between the states of said state machine are programmable transitions.
2. The system of
3. The system of
4. The system of
5. The system of
6. The system machine of
7. The system of
8. The system of
9. The system of
10. The system of
11. The system of
12. The system of
13. The system of
14. The system of
16. The state machine of
|
The present application claims priority of Italian Patent Application No. TO2008A000996 filed Dec. 29, 2008, which is incorporated herein in its entirety by this reference.
The present description refers to state machines.
The present description was devised with particular attention paid to the possible use for generating arbitrary waveforms.
Various fields of application provide for the generation of arbitrary waveforms, for example according to a Pulse Width Modulation or PWM, which depend on external signals and/or on programmed period values. Some applications provide for generating at least one pair of PWM signals with a determined ON and OFF relation.
In some cases, it is desired to provide for that instead of the ascent and descent fronts of A and B being coincident, a given (controlled) time interval may exist in which both waveforms are at low level (see, e.g., the time interval dt of
In order to meet the needs outlined above, the current solutions are represented by timers with counters for generating suitable timings. There are solutions that provide for the possibility to change the level of the waveform according to external events.
The inventors realized that a drawback of the current solutions lies in the lack of modularity and in the impossibility to correlate the generation of two or more waveforms as a function of the input signals and the status of the outputs.
Another drawback lies in the poor configurability, such to often require designing a special state machine for generating a particular sequence of waveforms.
The present invention has the object of overcoming the drawbacks outlined previously.
According to the invention, such object is attained due to a state machine having the characteristics specifically referred to in the claims that follow.
The claims form an integral part of the technical disclosure provided herein in relation to the invention.
In an embodiment, the solution described allows overcoming the drawbacks outlined previously, offering the possibility to generate arbitrary waveforms by means of a single state machine provided with a group of configuration registers.
In an embodiment, the solution described herein is represented by an event-driven programmable state machine.
In an embodiment, the machine uses a micro-controller or any other means capable of configuring the registers to obtain the desired function.
A possible embodiment is represented by a machine having at least two states plus an idle state.
In an embodiment, the level of the output signal is also configurable.
In an embodiment, the state machine is capable of changing state as a function of an internal timer and/or as a function of external events suitably synchronized.
In an embodiment, programming registers can be used to set logic functions that determine the cause of the change of state.
An advantage of the solution described herein is modularity. In an embodiment, input ports and output signals are provided capable of connecting two machines to each other in such a manner to generate correlated waveforms.
In an embodiment, a state machine made up of two elementary state machines may in turn be connected with another, equivalent one, for example to generate four waveforms whose phase relation can be configured.
Now, the invention shall be described, strictly for exemplifying and non-limiting purposes, with reference to the attached representations, wherein:
Illustrated in the following description are various specific details aimed at providing an in-depth understanding of the embodiments. The embodiments may be obtained without one or more specific details, or through other methods, components, materials etc. In other cases, known structures, materials or operations are not shown or described in detail to avoid obscuring the various aspects of the embodiments. Reference to “an embodiment” in this description indicates that a particular configuration, structure or characteristic described regarding the embodiment is included in at least one embodiment. Hence, expressions such as “in an embodiment”, possibly present in various parts of this description do not necessarily refer to the same embodiment. Furthermore, particular configurations, structures or characteristics may be combined in any suitable manner in one or more embodiments.
References herein are only used for facilitating the reader and thus they do not define the scope of protection or the scope of the embodiments.
A state machine as represented in
According to its current state, the network which implements the state machine assigns a determined level to one or more output signals. These may be generated, for example, by power and/or current generators that “sense” the current state of the state machine and produce a corresponding level signal.
In an embodiment, the output signal level is also configurable.
All this corresponds to criteria per se known in the art, hence not requiring a detailed description herein.
In the illustrated embodiment, the state machine includes five states indicated as S0, S1, S2 and S3 and IDLE (i.e. deactivated).
In an embodiment, associated to the machine is a micro-controller (or any equivalent means) capable of configuring the registers to be able to obtain the desired function.
The IDLE state is attained due to a machine enabling signal (fsm_enable) or a reset signal. In particular, the IDLE state is attainable through a reset signal of the machine counter (Reset cnt) starting from each of the states S0, S1, S2 and S3.
Each state generally corresponds to the emission of output signals with at least one different parameter (Parameter(n) with n=0, 1, 2, 3, 4 where Parameter (0) refers to the IDLE state).
Further provided for is “Hold” state in which it is possible, after initial configuration, to move from any state to any state.
The state machine is capable of changing state as a function of an internal timer and/or as a function of external events suitably synchronized.
In the illustrated embodiment the starting of the machine counter (Start_cnt) i.e. an ascent front (or descent front) of a given signal x (Edge(x)), representing an external event determine the passage from the IDLE state to state S0.
The state machine is capable of “going through” all the states S0, S1, S2 and S3 (i.e. rotate in sequence through such states), as represented with the full line, as a function of the state of the comparator (Cmp(n)) and/or of external events.
However, the passage between the IDLE, S0, S1, S2 and S3 states may also occur freely, i.e. outside the predetermined sequence, through the transitions indicated with dashed lines and suitable to represent programmable transitions as a function of the state of the comparator (Cmp(n)) and/or of the external events.
In various embodiments, the working parameters of the state machine can be varied by software means.
In an embodiment it is thus possible, for example by means of programming registers, to set logic functions that determine the cause of the passage of state.
In the state machine of
For example,
An advantage of the solution described lies in the modularity, in that two (or possibly more) machines of the type described herein may be connected to each other through input ports and the respective output signals in such a manner to generate correlated waveforms.
In an embodiment, a state machine like the one illustrated in
In particular, references A1, A2, on one hand, and B1, B2, on the other are two pairs of PWM modulated signals. In the two pairs, the signals may differ from each other in terms of parameters such as repetition frequency, duty cycle, relative phase, amplitude. The two pairs of signals are emitted in an alternating fashion with respect to each other depending on the level (“low” or “high”) of an Event signal representing an external event.
Referring now to
The actual FSM shown in
An example of a realization of the hardware state machine is shown in
The controller 606 is the real time module core, and it is primarily a Finite State Machine (FSM) of six states.
For each of the five main states (not hold state) there are some parameters that configure the related state behavior. In this way it is possible to change the FSM behavior simply by re-configuring the parameters. The configuration module 602 takes care to correctly configure the real time module, by correctly programming the parameter registers 610. The expansion interface allows the realization of a cluster FSM architecture. The controller 606 is in further communication with the configuration sub-module 602 through time dithering registers 612, shadow registers 614, and comparators 616, as well as counter 618. Edge level detector 608 is also coupled to the controller 606, and receives the SEL and ENA input signals.
Many other variations of the embodiment of the state machine shown in
Obviously, without prejudice to the principle of the present invention, the details and embodiments may vary, even significantly, with respect to what has been described herein by way of non-limiting example only, without departing from the scope of the invention as defined by the attached claims.
Combination 700 comprises a first state machine 701 and a homologous state machine 702. An exemplary embodiment of state machines 701 and 702 are disclosed in
Vincenzoni, David, Giussani, Luca, Bellomo, Ignazio, Loidl, Ales
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4740961, | Oct 30 1986 | AG COMMUNICATION SYSTEMS CORPORATION, 2500 W UTOPIA RD , PHOENIX, AZ 85027, A DE CORP | Frame checking arrangement for duplex time multiplexed reframing circuitry |
5860158, | Nov 15 1996 | Samsung Electronics Company, Ltd | Cache control unit with a cache request transaction-oriented protocol |
6571308, | Jan 31 2000 | CALLAHAN CELLULAR L L C | Bridging a host bus to an external bus using a host-bus-to-processor protocol translator |
6573308, | Aug 11 1999 | BASF Aktiengesellschaft | Biologically degradable foamed material particles |
7590823, | Aug 06 2004 | XILINX, Inc.; Xilinx, Inc | Method and system for handling an instruction not supported in a coprocessor formed using configurable logic |
20020013874, | |||
20030140218, | |||
20040003355, | |||
20040059443, | |||
20060220938, | |||
20070159653, | |||
20080136342, | |||
JP2009145957, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 17 2009 | LOIDL, ALES | STMICROELECTRONICS S R L | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 17 2009 | LOIDL, ALES | STMICROELECTRONICS DESIGN AND APPLICATION S R O | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 18 2009 | VINCENZONI, DAVID | STMICROELECTRONICS DESIGN AND APPLICATION S R O | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 18 2009 | GIUSSANI, LUCA | STMICROELECTRONICS DESIGN AND APPLICATION S R O | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 18 2009 | BELLOMO, IGNAZIO | STMICROELECTRONICS DESIGN AND APPLICATION S R O | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 18 2009 | VINCENZONI, DAVID | STMICROELECTRONICS S R L | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 18 2009 | GIUSSANI, LUCA | STMICROELECTRONICS S R L | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 18 2009 | BELLOMO, IGNAZIO | STMICROELECTRONICS S R L | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023690 | /0048 | |
Dec 22 2009 | STMicroelectronics Design and Application S.R.O. | (assignment on the face of the patent) | / | |||
Dec 22 2009 | STMicroelectronics S.r.l. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 28 2016 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 19 2020 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 09 2016 | 4 years fee payment window open |
Oct 09 2016 | 6 months grace period start (w surcharge) |
Apr 09 2017 | patent expiry (for year 4) |
Apr 09 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 09 2020 | 8 years fee payment window open |
Oct 09 2020 | 6 months grace period start (w surcharge) |
Apr 09 2021 | patent expiry (for year 8) |
Apr 09 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 09 2024 | 12 years fee payment window open |
Oct 09 2024 | 6 months grace period start (w surcharge) |
Apr 09 2025 | patent expiry (for year 12) |
Apr 09 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |