VHDL将变量初始化为多个值

时间:2013-08-29 10:34:17

标签: integer vhdl

在VHDL中,是否可以将值顺序分配给INTEGER类型的变量?例如,我有一个行为文件,其中有一个矩阵,可以从名为INTEGER类型的DIN变量中加载值。在测试平台中,我认为我需要分配DIN可以拥有的值,在这种情况下我需要8x8值。当我的唯一输入是DIN,CLK和START时,我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

我假设这个问题可以解释为:“给定一个2D整数数组,我怎样才能一次初始化一个值?”

如果是这种情况,这是一个可能的解决方案:

  • 你需要两个整数类型的内部信号来索引数组元素(比如current_rowcurrent_column
  • 您需要一个复位信号,在初始化时将寄存器置于已知状态(current_rowcurrent_column,并且当置位复位时,矩阵元素应设置为0)
  • 在每个时钟脉冲上,将d_in中的值分配给矩阵中的元素:matrix(current_row, current_column) <= d_in
  • 在每个时钟脉冲上,更新current_rowcurrent_column,以便它们以正确的顺序循环遍历整个矩阵

实施细节留待读者阅读,但这应该足以让您入门。

答案 1 :(得分:0)

您需要将顺序值存储在某种数组中,然后您的测试平台可以逐步遍历数组,并依次将值分配给DIN信号。