我正在开发一个允许用户从虚拟逻辑门构建数字电路的程序。每个门都是代表特定门类型的类的实例,例如,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;
}
每个门都有七个输入,但并非所有输入都必须使用(即,对于具有三个输入的门,其余四个将只是“1”,无论如何都是与的中性元素)。每个输入都是对另一个门的输出或布尔数组(存储输入向量)的元素的引用,以便一个门生成的信号自动发送到下一个门。问题是我还需要在门内动态传输信号,即如果与门中的输入信号之一设置为 0,则输出自动具有 0 值。因此,当您将二进制向量输入到电路的输入时,它会改变电路输出的值。或者也许有比从单个门构建电路更简单的方法来模拟电路?我需要它来生成测试模式。