在VHDL中定义Matrix2D的初始值

时间:2012-07-13 09:13:26

标签: vhdl fpga

我在VHDL中为matrix2D的信号类型赋予初始值零时遇到问题。我把它定义如下:

type matrix2D is array (integer range <> , integer range <> ) of signed(2 downto 0);

在我的VHDL代码中我写了初始值:

process(matrix1, matrix2, s_out_adder)
  variable v_flipflop_adder: matrix2D(0 to 4, 0 to 4) :=((0 to 4),(others =>(others=>'0')));
begin   
....

但不幸的是它不起作用。

有谁知道如何为matrix2D定义初始值零?

1 个答案:

答案 0 :(得分:5)

我的Ashenden州副本

的第86页
  
    
      

我们还可以使用聚合来编写多维数组值。在这种情况下,我们将数组看作是一个数组数组,首先为每个最左边的索引值写一个数组聚合。

    
  

这就是您的示例所需要的:

variable v_flipflop_adder_simple_init: matrix2D(0 to 4, 0 to 4) :=
       (others => (others => (others => '0')));

这是一个更复杂的问题:

variable v_flipflop_adder: matrix2D(0 to 4, 0 to 5) :=
       (      4 => (1 => "001", others => "101"),
         others => (5 => "110", others => "010"));