Loops 是否可以在vhdl中使用for/loop变量进行索引?

Loops 是否可以在vhdl中使用for/loop变量进行索引?,loops,for-loop,matrix,indexing,vhdl,Loops,For Loop,Matrix,Indexing,Vhdl,我是VHDL代码的新手 我想使用for/loop中定义的变量为共享变量编制索引。虽然编译器告诉我有一些警告,但它似乎在模拟中工作: 身份证号码:13024。输出引脚卡在VCC或GND上 不幸的是,它并不像警告中所预期的那样在船上工作 我想使用for/loop,因为它们似乎很好地降低了所使用的全部组合函数的复杂性,所以我想用一种愚蠢的方式索引我的共享变量 这是我的代码摘录: for I in I_top to I_top loop for J in J_top to J_top loop

我是VHDL代码的新手

我想使用for/loop中定义的变量为共享变量编制索引。虽然编译器告诉我有一些警告,但它似乎在模拟中工作:

身份证号码: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;

我想我已经找到了解决这个问题的办法

我的理解是,在VHDL中使用10x10变量会带来很多复杂性,因为编译器会分配它们所需的所有资源

如果要使用空格保存变量,可以使用ram芯片之类的东西:


然后,您需要管理地址周期和读/写周期,但以前的复杂性似乎消失了。

这些是进程内的循环吗?对于循环在进程之外不起作用,但是对于。。。在当前语言中,共享变量只允许使用受保护的类型。您可以使用在流程中定义的正则变量。这用于。。。循环在进程内部使用。它们在模拟中工作,但不在船上工作。现在我已经用信号替换了共享变量,但它总是只在模拟中起作用。我认为这个片段是不可合成的。你有没有想过,什么样的组合逻辑允许在没有时钟的情况下增加,或者可以随时中断时钟。它看起来像是计算机程序而不是硬件设计。所以我想知道,在硬件项目中,哪种方法是管理一个4位的10x10矩阵的最佳方法?