`&`运算符对标准逻辑向量做了什么?

时间:2013-04-30 15:47:22

标签: vhdl

我正在查看执行以下操作的一些代码:

signal1 : std_logic
vector1 : std_logic_vector

vector1 <= vector1(20 downto 1) & signal1;

我假设vector1(20 downto 1)产生以下内容:

[20 19 18 ... 3 2 1]

但我不明白的是&对它的影响。如果0signal1并且0signal1时创建了向量,它会返回1吗?

1 个答案:

答案 0 :(得分:5)

&不是比较:它是连接运算符。它用较小的一个或组件(位,字符)构建一个更大的数组(向量,字符串)。

vector1(20 downto 1)只需从vector1获取一个20位的切片:&向其添加signal1,从而生成一个新的21位向量。然后由<=将其分配给vector1,我假设它必须是21位长(或者您有编译时错误!)

如果vector1被声明为

signal vector1 : std_logic_vector(21 downto 1);

那么这是一个移位寄存器;每个这样的操作都是左移1位,来自signal1的新LSB。