事象駆動シミューレションその2: デジタル回路のシミュレータその2:ORゲートと 問題3.29
or-gateのもう一つの実装。
まあそんなに難しくないが、少し遅くなるのね。
----
const
List orGateDelay(andGateDelay+inverterDelay*makeLeaf(2));
const
List orGate
(const
Wire& a1In, const Wire& a2In, const Wire& outputIn)
{
const auto a1(std::move(a1In));
const auto a2(std::move(a2In));
const auto output(std::move(outputIn));
const auto b(makeWire());
const auto c(makeWire());
const auto d(makeWire());
inverter(a1,b);
inverter(a2,c);
andGate(b,c,d);
inverter(d,output);
return(makeLeaf("OK"));
}
(他は問題3.28と同じなので略)
----
出力
----
Excersize
3.29:
sum
0 New-value = 0
carry
0 New-value = 0
sum
5 New-value = 1
sum
10 New-value = 0
sum
10 New-value = 1
carry
13 New-value = 1
sum
18 New-value = 0
0 件のコメント :
コメントを投稿