为了能够在我的 VHDL 设计中支持可扩展性,我开始使用记录作为组件的输入和输出。目前,我想在顶级架构中使用端口映射将我的组件链接到外部。问题是,记录有多个变量,必须与不同的来源联系起来。
目前我在 VHDL 代码中使用的记录如下所示(名称已替换为假货):
TYPE some_record_input IS RECORD
input_one : sfixed(3 downto -32);
input_two : sfixed(3 downto -32);
input_rst : std_logic;
END RECORD;
TYPE some_record_output IS RECORD
output_one : std_logic_vector(15 downto 0);
output_dn : std_logic;
END RECORD;
因此,我将 fixed_pkg 库用于固定点。
这些记录在实体端口映射中使用如下。
ENTITY my_component IS
port
(
clk : IN std_logic;
data : IN some_record_input;
result : OUT some_record_output
);
END my_component;
现在是出现问题的部分。我在顶层使用这个组件将它与我的 Altera 板可用的按钮和 LED 链接起来。目前这是通过在我的顶级实体主体中使用端口映射来完成的:
A0 : my_component PORT MAP(clk => CLK, data => (input_one => IONE, input_two => ITWO, input_rst => RST), result => (output_one => OONE, output_dn => ODN));
因此,资本信号是输出信号。显然这不是要走的路,因为 modelsim 不编译它。我想知道是否有人可以告诉我如何为 VHDL 中的顶级实体完成端口映射记录。提前致谢。