signal a : std_logic_vector (7 downto 0) := (others => '0');
a <= a (6 downto 0) & '0';
所以我理解a
是一个8位的信号,所有这些位都是0.下一行是否将位6分配为0再次为零?
答案 0 :(得分:3)
也许等效语法有助于理解:
a(7 downto 0) <= a(6 downto 0) & '0';
因此a(7)
获取a(6)
的值,a(6)
获取a(5)
的值,... a(0)
为'0'
。< / p>
此代码描述了一个移位寄存器(假设该语句包含在同步过程中,应该是为了防止组合循环),其中值在每个周期向左移位。
在VHDL中,&
是连接运算符。因此"0101" & "1010"
等于"01011010"
。在您的示例中,7个LSB连接到逻辑0,以形成新的移位8位向量。
答案 1 :(得分:0)
这是一个非常简短的定义,通过用'0'替换最右边的位来向左移位。