-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfsm.h
More file actions
78 lines (67 loc) · 2.05 KB
/
fsm.h
File metadata and controls
78 lines (67 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#ifndef FSM_H
#define FSM_H
#include <QObject>
enum EdgeEnum
{
FallingEdge,
RisingEdge
};
enum ResetModeEnum
{
Asynchronous,
Synchronous
};
enum UnitEnum
{
Seconds,
Milliseconds,
Microseconds,
Nanoseconds,
Picoseconds,
Femtoseconds
};
class FSM : public QObject
{
Q_OBJECT
size_t m_inputSize, m_outputSize;
EdgeEnum m_clockEgde;
EdgeEnum m_resetEdge;
ResetModeEnum m_resetMode;
QString m_timeUnit;
QString m_timePrecisionUnit;
QString m_moduleName;
QString m_inputSignalName;
QString m_outputSignalName;
QString m_clockSignalName;
QString m_resetSignalName;
QString m_currentStateRegisterName;
QString m_nextStateRegisterName;
FSM() {}
const QString getTimeUnitString(UnitEnum unit);
protected:
explicit FSM(QObject *parent = nullptr);
size_t getInputSize() const;
size_t getOutputSize() const;
QString getTimeUnit() const;
QString getTimePrecisionUnit() const;
QString getModuleName() const;
QString getInputSignalName() const;
QString getOutputSignalName() const;
QString getClockSignalName() const;
QString getResetSignalName() const;
QString getCurrentStateRegisterName() const;
QString getNextStateRegisterName() const;
EdgeEnum getClockEgde() const;
EdgeEnum getResetEdge() const;
ResetModeEnum getResetMode() const;
public:
void setSignals();
void setCodeSettings(EdgeEnum clockEgde = RisingEdge, EdgeEnum resetEdge = FallingEdge, ResetModeEnum resetMode = Asynchronous, UnitEnum timeUnit = Nanoseconds, UnitEnum timePrecisionUnit = Picoseconds);
void setInputSize(const size_t inputSize); // add control for 0
void setOutputSize(const size_t outputSize); // add control for 0
void setSignalNames(const QString &inputSignalName, const QString &outputSignalName, const QString &clockSignalName, const QString &resetSignalName, const QString ¤tStateRegisterName, const QString &nextStateRegisterName);
void setModuleName(const QString &moduleName);
signals:
public slots:
};
#endif // FSM_H