ユーザーが仮想論理ゲートからデジタル回路を構築できるようにするプログラムに取り組んでいます。すべてのゲートは、特定のゲート タイプを表すクラスのインスタンスになります。たとえば、AND クラスは次のようになります。
public class andgate
{
public andgate()
{
inputs = new bool[7];
for (int i = 0; i < 7; i++) inputs[i] = true;
output = (inputs[0] && inputs[1] && inputs[2] && inputs[3] && inputs[4] && inputs[5] && inputs[6]);
}
public bool[] inputs;
public bool output;
}
すべてのゲートには 7 つの入力がありますが、すべてを使用する必要はありません (つまり、3 つの入力を持つゲートの場合、残りの 4 つは AND の中立要素である「1」になります)。各入力は、別のゲートの出力または bool 配列 (入力ベクトルを格納する) の要素への参照であるため、1 つのゲートによって生成された信号は自動的に次のゲートに送信されます。問題は、信号をゲート内で動的に送信する必要があることです。つまり、AND ゲートの入力信号の 1 つが 0 に設定されている場合、出力の値は自動的に 0 になります。したがって、回路の入力にバイナリ ベクトルを供給すると、回路の出力の値が変更されます。それとも、個々のゲートから回路を構築するよりも回路をシミュレートする簡単な方法があるでしょうか? テストパターンの生成に必要です。