【发布时间】:2014-01-19 19:35:22
【问题描述】:
我是 VHDL 代码的新手。
我想使用 for/loop 中定义的变量来索引共享变量。尽管编译器告诉我有一些警告,但它似乎在模拟中工作:
(ID:13024)。输出引脚卡在 VCC 或 GND。
不幸的是,它在船上并没有像警告中预期的那样工作。
我想使用 for/loop,因为它们似乎可以很好地降低使用的“总组合函数”的复杂性,所以我想以一种愚蠢的方式索引我的共享变量。
这是我的代码的摘录:
for I in I_top to I_top loop
for J in J_top to J_top loop
if type = 1 then
matrix(I,J) := "110";
vector(I) := vector(I) + 1;
end := true;
elsif type = 2 then
...
end if;
end loop;
end loop;
【问题讨论】:
-
这些 for 循环是否在进程中?
for ... loop不能在进程之外工作,但for ... generate可以代替工作。 -
在当前语言中,共享变量只允许使用受保护的类型。您可以使用在流程中定义的常规变量。
-
这个 for ... 循环在进程内部使用。他们在模拟中工作,但不在船上。现在我用信号替换了共享变量,但它总是只在模拟中有效。
-
我认为这个sn-p是不可合成的。你有没有想过什么样的组合逻辑可以在没有时钟的情况下增加或者可以随时中断。它看起来像计算机程序而不是硬件设计。
-
所以我想知道,在硬件项目中管理 4 位 (10x10) 矩阵的最佳方法是什么?
标签: loops for-loop matrix indexing vhdl