我正在学习VHDL并发现一些令人困惑的东西。假设你有以下实体:为什么在使用组件时端口被重新定义?
entity alu32 is
port(a, b : in STD_LOGIC_VECTOR(31 downto 0);
alucontrol : in STD_LOGIC_VECTOR(2 downto 0);
result : buffer STD_LOGIC_VECTOR(31 downto 0);
zero : out STD_LOGIC);
end alu32;
当使用它作为其他实体的架构的组成部分,它的定义是这样的:
component alu32
port(
a, b : in STD_LOGIC_VECTOR(31 downto 0);
alucontrol : in STD_LOGIC_VECTOR(2 downto 0);
result : buffer STD_LOGIC_VECTOR(31 downto 0);
zero : out STD_LOGIC
);
end component;
我的问题是,为什么我们重新定义端口?这似乎是一个毫无意义的练习,因为它与实体声明中的完全相同。为什么VHDL设计不允许你简单地使用这样的组件:
component alu32;
http://stackoverflow.com/questions/3641341/vhdl-components?rq=1 – mstbaum 2015-04-03 14:12:46
可能的重复此外,至于为什么这样设计的东西,请记住,该语言最初是在1987年标准化。计算机远那么强大一点。 – 2015-04-03 14:38:25
另请参阅:http://electronics.stackexchange.com/questions/16692/vhdl-component-vs-entity – Josh 2015-04-03 14:53:19