51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
Adder4Bit::Adder4Bit()
|
|
{
|
|
w0.ConnectInput(fa0,1);
|
|
w0.ConnectOutput(fa1,0);
|
|
w1.ConnectInput(fa1,1);
|
|
w1.ConnectOutput(fa2,0);
|
|
w2.ConnectInput(fa2,1);
|
|
w2.ConnectOutput(fa3,0);
|
|
}
|
|
|
|
Adder4Bit::~Adder4Bit() {}
|
|
|
|
void Adder4Bit::ChangeInput (State s, int pin)
|
|
{
|
|
if (pin==0) fa0.ChangeInput(s,1);
|
|
if (pin==1) fa1.ChangeInput(s,1);
|
|
if (pin==2) fa2.ChangeInput(s,1);
|
|
if (pin==3) fa3.ChangeInput(s,1);
|
|
if (pin==4) fa0.ChangeInput(s,2);
|
|
if (pin==5) fa1.ChangeInput(s,2);
|
|
if (pin==6) fa2.ChangeInput(s,2);
|
|
if (pin==7) fa3.ChangeInput(s,2);
|
|
if (pin==8) fa0.ChangeInput(s,0);
|
|
}
|
|
|
|
void Adder4Bit::Action () {}
|
|
|
|
void Adder4Bit::ConnectInput (Wire& w, int pin)
|
|
{
|
|
// Wird von Connect-Funktion des Drahtes aufgerufen
|
|
if (pin==0) fa0.ConnectInput(w,1);
|
|
if (pin==1) fa1.ConnectInput(w,1);
|
|
if (pin==2) fa2.ConnectInput(w,1);
|
|
if (pin==3) fa3.ConnectInput(w,1);
|
|
if (pin==4) fa0.ConnectInput(w,2);
|
|
if (pin==5) fa1.ConnectInput(w,2);
|
|
if (pin==6) fa2.ConnectInput(w,2);
|
|
if (pin==7) fa3.ConnectInput(w,2);
|
|
if (pin==8) fa0.ConnectInput(w,0);
|
|
}
|
|
|
|
void Adder4Bit::ConnectOutput (Wire& w, int pin)
|
|
{
|
|
// Wird von Connect-Funktion des Drahtes aufgerufen
|
|
if (pin==0) fa0.ConnectOutput(w,0);
|
|
if (pin==1) fa1.ConnectOutput(w,0);
|
|
if (pin==2) fa2.ConnectOutput(w,0);
|
|
if (pin==3) fa3.ConnectOutput(w,0);
|
|
if (pin==4) fa3.ConnectOutput(w,1);
|
|
}
|