我正在研究一个接收信号并将其添加到矢量中的函数 .
一旦添加了足够的信号,在我的情况4中,然后我遍历向量并将其添加到我的进程中的整数变量 .
我无法将单个元素转换为整数 .
我尝试使用to_integer(unsigned(myVector)),但这是二进制到十进制的转换 .
我只是想要它,所以当我循环我的矢量像这样:
for i in 0 to myVector'length loop
Sum := Sum + to_integer(myVector(i));
end loop;
比特值1或0转换为1或0,我可以用来添加到我的总和 .
有任何想法吗?
谢谢
PS - myVector是一个信号,Sum是我的过程中的整数变量 . 如果没有简单的方法,我怎么能这样做?
1 回答
假设您要计算numeric_std_unsigned中的那些,问题只是to_integer需要处理向量(无符号),而myVector(i)有点(std_logic)
以下创建一个1位无符号,to_integer应该满意 .
或者,如果综合工具不喜欢在循环中动态切片myVector,
会做 .
还要注意,循环边界可能有一个范围错误... 0到长度可能比你有元素多1次迭代 - 确定实际从0开始的元素,这是一个很大的假设 .
是首选......