大数组初始化为0

时间:2017-06-01 13:02:13

标签: vhdl

有没有办法初始化二维数组而不是逐个给出所有值。

我有信号声明:

  type t_id_data is array (integer range <> ) of integer; 
  type t_image_data is array (integer range <>) of t_id_data;
  signal s_image_data : t_image_data ( 0 to 30) (0 to 720);

我想将其初始化为0.它是一个整数数组。

谢谢,

1 个答案:

答案 0 :(得分:4)

是。您使用聚合。为清晰起见,让我们减小数组的大小:

type t_id_data is array (integer range <> ) of integer; 
type t_image_data is array (integer range <>) of t_id_data;

-- this sets element 0 to {0, 10, 100} and elements 1,2 to {0, 11, 0} 
-- using NAMED ASSOCIATION
signal s_image_data : t_image_data ( 0 to 2) (0 to 2) 
  := (0 => (0 => 0, 1 => 10, 2 => 100), 
      others => (1 => 11, others => 0));  

-- this sets all the elements to 0
signal another_signal : t_image_data ( 0 to 2) (0 to 2)
  := (others => (others => 0));  

-- this sets element 0 to {0, 10, 100} and elements 1,2 to {0, 11, 0} 
-- using POSITIONAL ASSOCIATION
signal yet_another : t_image_data ( 0 to 2) (0 to 2) 
  := ((0, 10, 100), others => (0, 11, 0));