From 8aacd56b65f9ca7fd04e53c427f7430ecd38ae9c Mon Sep 17 00:00:00 2001 From: daniel Date: Mon, 10 Apr 2017 20:44:48 -0400 Subject: [PATCH] Add the event generation to the nand Gate --- src/event.cpp | 6 ++---- src/event.h | 7 +++++-- src/nandGate.cpp | 3 ++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/event.cpp b/src/event.cpp index 8838972..bff04e1 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -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) { diff --git a/src/event.h b/src/event.h index 27206fd..2a6833c 100644 --- a/src/event.h +++ b/src/event.h @@ -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 diff --git a/src/nandGate.cpp b/src/nandGate.cpp index 4f535ef..d25be20 100644 --- a/src/nandGate.cpp +++ b/src/nandGate.cpp @@ -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); } } \ No newline at end of file