90 lines
2.0 KiB
C++
90 lines
2.0 KiB
C++
#include<iostream>
|
|
#include<cassert>
|
|
#include"DLL.hh"
|
|
#include"MinPriorityQueue.hh"
|
|
#include"MinPriorityQueueImp.cc"
|
|
#include"Queue.hh"
|
|
class Simulator; // forward declaration
|
|
class Wire; // forward declaration
|
|
class Circuit; // forward declaration
|
|
#include"Wire.hh"
|
|
#include"Circuit.hh"
|
|
#include"Simulator.hh"
|
|
#include"SimulatorImp.cc"
|
|
#include"WireImp.cc"
|
|
#include"Nand.hh"
|
|
#include"NandImp.cc"
|
|
#include"And.hh"
|
|
#include"AndImp.cc"
|
|
#include"Nor.hh"
|
|
#include"NorImp.cc"
|
|
#include"Or.hh"
|
|
#include"OrImp.cc"
|
|
#include"Exor.hh"
|
|
#include"ExorImp.cc"
|
|
#include"Inverter.hh"
|
|
#include"InverterImp.cc"
|
|
#include"Fork.hh"
|
|
#include"ForkImp.cc"
|
|
#include"Terminal.hh"
|
|
#include"TerminalImp.cc"
|
|
#include"Analyzer.hh"
|
|
#include"AnalyzerImp.cc"
|
|
#include"Clock.hh"
|
|
#include"ClockImp.cc"
|
|
#include"HalfAdder.hh"
|
|
#include"HalfAdderImp.cc"
|
|
#include"FullAdder.hh"
|
|
#include"FullAdderImp.cc"
|
|
#include"Adder4Bit.hh"
|
|
#include"Adder4BitImp.cc"
|
|
|
|
int main ()
|
|
{
|
|
Adder4Bit adder;
|
|
Analyzer analyzer(5);
|
|
Terminal a3(low ),a2(high),a1(high),a0(high);
|
|
Terminal b3(high),b2(low ),b1(high),b0(low );
|
|
Terminal c0(low);
|
|
|
|
Wire wa0,wa1,wa2,wa3;
|
|
Wire wb0,wb1,wb2,wb3;
|
|
Wire ws0,ws1,ws2,ws3;
|
|
Wire wc0,wc4;
|
|
|
|
wc0.ConnectInput(c0,0);
|
|
wc0.ConnectOutput(adder,8);
|
|
|
|
wa0.ConnectInput(a0,0);
|
|
wa1.ConnectInput(a1,0);
|
|
wa2.ConnectInput(a2,0);
|
|
wa3.ConnectInput(a3,0);
|
|
wa0.ConnectOutput(adder,0);
|
|
wa1.ConnectOutput(adder,1);
|
|
wa2.ConnectOutput(adder,2);
|
|
wa3.ConnectOutput(adder,3);
|
|
|
|
wb0.ConnectInput(b0,0);
|
|
wb1.ConnectInput(b1,0);
|
|
wb2.ConnectInput(b2,0);
|
|
wb3.ConnectInput(b3,0);
|
|
wb0.ConnectOutput(adder,4);
|
|
wb1.ConnectOutput(adder,5);
|
|
wb2.ConnectOutput(adder,6);
|
|
wb3.ConnectOutput(adder,7);
|
|
|
|
ws0.ConnectInput(adder,0);
|
|
ws1.ConnectInput(adder,1);
|
|
ws2.ConnectInput(adder,2);
|
|
ws3.ConnectInput(adder,3);
|
|
ws0.ConnectOutput(analyzer,0);
|
|
ws1.ConnectOutput(analyzer,1);
|
|
ws2.ConnectOutput(analyzer,2);
|
|
ws3.ConnectOutput(analyzer,3);
|
|
|
|
wc4.ConnectInput(adder,4);
|
|
wc4.ConnectOutput(analyzer,4);
|
|
|
|
Sim.Simulate(40);
|
|
}
|