使用串联来转换VHDL

时间:2011-10-08 18:14:21

标签: vhdl

Data_Int<='0' & Data_Int(7 downto 1); --if shift then shift it right

连接如何用于转移位置?我认为VHDL中有一个右移运算符。有人可以向我解释一下吗?

假设

Data_Int : std_vector(10 downto 0);
-- and Data_Int has "1010010011" 

非常感谢。

1 个答案:

答案 0 :(得分:2)

VHDL-87中没有提供移位运算符(sll,srl,sla,sra,rol和ror),因此您将看到许多代码使用串联和部分数组显式转换。编写上述移位(适用于各种数组大小)的更通用的方法是:

Data_Shift&lt; ='0'&amp; Data_Int(data_Int'left downto Data_Int'right + 1);

连接提供了一个移位,因为你丢弃了一个位(在这种情况下为bit 0)并在高位端用其他东西替换它(这里是逻辑0,尽管你也可以移入逻辑1, sign-extend等。)