我有一个组件:
Component CAU is
port
(
CLK : in std_logic;
RESET : in std_logic;
START : in std_logic;
V_DIRECTION : in vector_3d;
P_ORIGIN : in vector_3d;
V_NORMAL_IN : in vector_3d;
DOT_A : in vector_3d;
DOT_B : in vector_3d;
DOT_C : in vector_3d;
ID_DATA_IN : in scalar;
ID_DATA_OUT : out scalar;
V_REFLECT : out vector_3d;
V_PASS : out vector_3d;
P_INTERSECT : out vector_3d;
V_NORMAL_OUT : out vector_3d;
T_OUT : out scalar;
SUCCESS : out std_logic;
FINISH : out std_logic
);
end Component;
我想创建它的 8 个实例。每个都被称为CAU_inst0
, CAU_inst1
, 等等。每个实例都按以下方式连接:
CAU_inst0 : CAU
PORT MAP
(
CLK => CLK_CAU,
RESET => RESET,
START => start_0_sig,
V_DIRECTION => v_direction_0_sig,
P_ORIGIN => p_origin_0_sig,
V_NORMAL_IN => v_normal_in_0_sig,
DOT_A => dot_a_0_sig,
DOT_B => dot_b_0_sig,
DOT_C => dot_c_0_sig,
ID_DATA_IN => id_data_in_0_sig,
ID_DATA_OUT => id_data_out_0_sig
V_REFLECT => v_reflect_0_sig,
V_PASS => v_pass_0_sig,
P_INTERSECT => p_intersect_0_sig,
V_NORMAL_OUT => v_normal_out_0_sig,
T_OUT => t_0_sig,
SUCCESS => success_0_sig,
FINISH => finish_0_sig
);
对于每个实例i
号码0
被替换为i
。我所做的是创建一个 Matlab 脚本,该脚本创建了 8 个具有正确数量的不同实例。但这是一个丑陋的解决方案,因为它需要 170 行相同的代码,几乎没有任何变化。有没有一种方法可以在代码内部的循环中创建组件(如果可能的话,还可以创建适当的信号)以减少混乱和线条?