Add the event generation to the nand Gate
This commit is contained in:
parent
441fda70ce
commit
c1c31af8e6
@ -1,9 +1,7 @@
|
||||
#include "event.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
event::event(int num, int value, int setTime, int wire) : evNum(num), evValue(value),
|
||||
evTime(setTime), wireNum(wire) {}
|
||||
event::event(int num, int value, int setTime, int wire, wire *output) : evNum(num), evValue(value),
|
||||
evTime(setTime), out(output) {}
|
||||
|
||||
bool event::operator<(const event &e1) {
|
||||
if(evTime == e1.evTime) {
|
||||
|
@ -1,13 +1,16 @@
|
||||
#ifndef EVENT
|
||||
#define EVENT
|
||||
using namespace std;
|
||||
#include "wire.h"
|
||||
|
||||
|
||||
class event {
|
||||
public:
|
||||
event(int num, int value, int setTime, int wire);
|
||||
event(int num, int value, int setTime, wire * output);
|
||||
bool operator<(const event &e1);
|
||||
private:
|
||||
int evNum, evValue, evTime, wireNum;
|
||||
int evNum, evValue, evTime;
|
||||
wire *out;
|
||||
};
|
||||
|
||||
#endif // !EVENT
|
||||
|
@ -13,11 +13,12 @@ void nandGate::evaluate(int time)
|
||||
{
|
||||
if (in1->getValue(time) == 0 || in2->getValue(time) == 0) {
|
||||
if (out->getValue(time + delay) != 1) {
|
||||
|
||||
e->push(event(e->size, 1, time + delay, out));
|
||||
out->setValue(1, time + delay);
|
||||
}
|
||||
}
|
||||
else {
|
||||
e->push(event(e->size, 0, time + delay, out));
|
||||
out->setValue(0, time + delay);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user