arrays - (N+1) x 13 数组的 VHDL 移位数组元素
问题描述
我似乎在移动矢量数组元素时遇到了问题。当我的 FSM 进入状态时,应在输入的开头添加一个 0,然后将其保存在第 0 个数组位置。其余的数组条目应该再移动一步,所以位置 0 到位置 1 等等。
我试图在我的状态机中使用的是
when readAndShift =>
x(0) <= "0" & x_in;
for i in N to 1 loop
x(i) <= x(i-1);
end loop;
类型和变量声明为:
type tap_line is array(0 to N) of std_logic_vector(12 downto 0);
.
.
.
signal x : tap_line := (others=>(others=>'0'));
据我了解,在VHDL中,for循环“展开”自身并同时执行for循环的每一步,所以一个时钟上升沿就足够了,对吧?我的模拟只显示了第 0 个数组元素的变化。
解决方案
好的,所以我想写的是
when readAndShift =>
x(0) <= "0" & x_in;
for i in N downto 1 loop
x(i) <= x(i-1);
end loop;
我以为方向会自动确定。感谢您的帮助,现在我可以继续解决其余的逻辑问题
推荐阅读
- elasticsearch - 为什么我得到的是不同字段的综合分数,而不是最佳匹配字段的分数
- git - 当我更新主分支时,为什么它显示冲突?
- ios - 无效的 `Podfile` 文件:无法加载此类文件。/flutter/packages/flutter_tools/bin/podhelper
- c++ - C++ 程序将垃圾值赋给已初始化的变量
- crafter-cms - 无法在 Crafter CMS 中使用内容继承
- java-8 - Java 8 流在读取文件和查找字数方面比通常的循环花费更多时间
- flutter - Flutter PositionedTapDetector 不适用于堆栈小部件
- google-cloud-platform - 如何以间隔方式从 GCP 更新价格
- angular - 无法清除 Observable 订阅方法中的数组组件变量
- mysql - 从存储过程mysql 5.7制作存储过程