这只是我试图围绕我的大脑进行的一个实验。
所以我有两个寄存器 r1 r2 和两条线 w1 w2。我想要的是,如果两个r都是1,那么两个w都应该是1。如果一个r是1,对应的w应该是1,另一个应该是0。如果两个r都是0,w1应该是1,w2应该是0。
11=>11
10=>10
01=>01
00=>10
需要注意的是,我希望 w1 的分配不要直接包含 r2,反之亦然。所以,我有(例如在 Verilog 中——VHDL 的答案也很好)
assign w1 = r1 | !w2;
assign w2 = r2 | !w1;
这是必要的,但还不够。上述所有情况都为真,但 00=>01 也为真。事实上,当 r1=r2=0 时,它只是创建了一个没有驱动程序的电线循环,所以我认为结果是不确定的。
有没有什么方法可以得到我正在寻找的结果而不包括 r2 在 w1 的分配中,反之亦然?(并且没有引入新变量)。基本上只是为了确保在一个导线周期中,w1 被拉高而 w2 被拉低?