1

我想更改数组中的一些元素,但可以弄清楚如何去做。

这一行: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;
4

1 回答 1

3

不幸的是,您定义数组的方式排除了您喜欢分配的方法:如果您定义这样的类型:

type type3 is array(1 to 2, 1 to 2) of integer;
signal sig3 : type3;

作业必须完全指定索引:

sig3(1,1) <= 11;
sig3(1,2) <= 12;

您可以将二维数组定义为一维数组的数组

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);

不幸的是,你不能在另一个维度上那么容易地工作。

于 2013-08-15T16:38:38.853 回答