将所有未使用的端口片映射在一起
Mapping all unused port slices together
所以,
我的一个实体上有一个 32 位端口。这实际上由许多较小的信号组成,全部映射到一个寄存器中。在一个示例中,当我实例化它时,我只对 32 个信号中的 3 个感兴趣。所以,我相应地映射这些,使用切片关联(到 a、b 和 c)。然后我想将其他 29 位分配为零。有没有比必须写出几条语句来覆盖所有剩余位更快的方法?
label: module1
port map(
reg_in(4) => a,
reg_in(7) => b,
reg_in(25)=> c,
reg_in(3 downto 0) => (others => '0'),
reg_in(6 downto 5) => (others => '0'),
reg_in(24 downto 8) => (others => '0'),
reg_in(31 downto 26) => (others => '0')
);
我会添加一个内部信号并在端口映射中连接它..
signal reg_assembly : std_logic_vector(31 downto 0);
...
reg_assembly <= (4 => a, 7 => b, 25 => c, others => '0');
label: module1
port map(
reg_in => reg_assembly
);
所以,
我的一个实体上有一个 32 位端口。这实际上由许多较小的信号组成,全部映射到一个寄存器中。在一个示例中,当我实例化它时,我只对 32 个信号中的 3 个感兴趣。所以,我相应地映射这些,使用切片关联(到 a、b 和 c)。然后我想将其他 29 位分配为零。有没有比必须写出几条语句来覆盖所有剩余位更快的方法?
label: module1
port map(
reg_in(4) => a,
reg_in(7) => b,
reg_in(25)=> c,
reg_in(3 downto 0) => (others => '0'),
reg_in(6 downto 5) => (others => '0'),
reg_in(24 downto 8) => (others => '0'),
reg_in(31 downto 26) => (others => '0')
);
我会添加一个内部信号并在端口映射中连接它..
signal reg_assembly : std_logic_vector(31 downto 0);
...
reg_assembly <= (4 => a, 7 => b, 25 => c, others => '0');
label: module1
port map(
reg_in => reg_assembly
);