我想改变数组中的一些元素,但可以弄清楚如何去做。
这一行:sig3(1) <= (11, 12);
给了我一个错误
entity t1 is
end entity;
architecture testbench of t1 is
type type3 is array(1 to 2, 1 to 2) of integer;
signal sig3 : type3;
begin
process is
begin
-- sig3 <= ((11, 12), (13, 14)); -- this works
sig3(1) <= (11, 12); -- get error: "Incompatible types for assignment."
wait;
end process;
end architecture;
答案 0 :(得分:3)
您定义数组的方式不幸地排除了您赞成分配的方法: 如果您对这样的类型进行decalre:
type type3 is array(1 to 2, 1 to 2) of integer;
signal sig3 : type3;
作业必须完全指定索引:
sig3(1,1) <= 11;
sig3(1,2) <= 12;
您可以将2d数组定义为1-d数组的数组,但
type type4 is array(1 to 2) of integer;
type type5 is array(1 to 2) of type4;
signal sig5 : type5;
您现在可以像这样分配:
sig5(1) <= (11,12);
不幸的是,你无法在其他方面轻松工作。