Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
335 Kevin 1
#ifndef CIRCUIT_H
2
#define CIRCUIT_H
3
 
4
#include "GlobalDefines.h"
5
#include "Gate_BASE.h"
6
#include "Gate_INPUT.h"
7
#include "Gate_OUTPUT.h"
8
#include "Gate_BUFFER.h"
9
#include "Gate_AND.h"
10
#include "Gate_NAND.h"
11
#include "Gate_OR.h"
12
#include "Gate_NOR.h"
13
#include "Gate_XOR.h"
14
#include "Gate_XNOR.h"
15
#include "Gate_NOT.h"
16
#include "Gate_DFF.h"
17
#include "Wire.h"
18
#include "Simulator.h"
19
#include "SimController.h"
20
 
21
typedef struct {
22
        QRectF region;
23
} wireSpace;
24
 
25
class Simulator;
26
class SimController;
27
 
28
class Circuit : public QObject
29
{
30
    Q_OBJECT
31
    public:
32
        Circuit();
33
 
34
        int readGates(QString file);
35
        int readVectors(QString file);
36
        int readFaults(QString file);
37
 
38
        QString getLastError(void);
39
 
40
        QMap<int, Gate_BASE*> gateIndex;
41
        QMap<int, QList<Gate_BASE*> > gatesPerLevel;
42
        int numGates;
43
        int numFFs;
44
        int numInputs;
45
        int numOutputs;
46
 
47
        bool circuitLoaded;
48
 
49
        QList<Wire*> wires;
50
        QMap<int, QList<wireSpace*> > wireVSpacing;
51
        QMap<int, QList<wireSpace*> > wireHSpacing;
52
 
53
    signals:
54
        void updateStatus(QString status);
55
        void toggleShowWireValues();
56
 
57
    public slots:
58
        void reset();
59
        void showSimController();
60
 
61
    private:
62
        Simulator *sim;
63
        SimController *simController;
64
        QString lastError;
65
};
66
 
67
#endif // CIRCUIT_H