您如何在 verilog 中使用单个位或向量?

How do you or a vector with a single bit in verilog?

我有一个向量,my_vector,我想 or 每个位与一个位,my_bit,我该怎么做?

在 VHDL 中,我必须编写如下内容:

foo <= (n-1 downto 0 => my_bit) || my_vector;

在 verilog 中有更简单的方法吗? 我试过了:

foo = my_bit | my_vector;

但看起来确实如此 {0...0,my_bit} | my_vector

一种方法是:

foo = {n{my_bit}} | my_vector;

您确定要or吗?那么您将只有 2 个可能的输出:原始向量(如果该位为 0)和全 1 的向量(如果该位为 1)。

如果是这样,您可以使用此条件赋值:

assign my_vector = (my_bit == 0) ? my_vector : n'b111...1;