如何通过verilog中的一个输入来处理输出和输入总线转换?

时间:2015-12-23 01:08:03

标签: verilog

我想在verilog中创建一个简单的模块

计划就是这样。

If(en)
  A=B;
else
  B=A;

我想在没有时钟的情况下实现verilog。

是否可以实现上述逻辑?

更新

我想要两个inout端口的总和。 但我不确定如何。你能不能让我知道怎样才能把2个输入端口加起来?

Module  test1(
   en,
   A,
   B,
   C
);
input en;
inout [1:0] A;
inout [1:0] B;
output [3:0] C;

...
What can I do ?
...


endmodule

1 个答案:

答案 0 :(得分:1)

  

如果(烯)     A = B;   其他     B = A;

您无法对两个输入端口AB求和。 en确定方向。 请考虑以下代码:

assign A = (en) ? B : 1'bz;

assign B = (~en) ? A : 1'bz;

en为低时,B将成为您的输出,A将成为您的输入。

en为高时,A将成为您的输出,B将成为您的输入。

当您分配CA的总和时,您的输出B将不确定,因为任何一个输入都是1'bz

assign C = A + B; // will cause undefined behavior