通常在VHDL中我注意到某个组件有多个输出端口。即在我们的一个例子中,我们得到了以下组件:
COMPONENT eight_bitadder
PORT ( a, b: in std_logic_vector(7 downto 0);
f: in std_logic;
C: out std_logic_vector(7 downto 0);
o, z: out std_logic);
END COMPONENT;
其中z确定结果是否为0,o在溢出时触发。
现在在我的情况下我希望使用这个加法器,但实际结果并不重要,相反我只想检查结果是否为“0”。我当然可以添加一个虚拟信号并将端口存储到这个信号中,但这似乎不必要地复杂化,并且可能在合成期间添加额外的组件?
答案 0 :(得分:17)
实例化组件时,可以保留不关心的输出端口。您关注的唯一信号是“溢出”。
编辑:请注意,综合工具将优化掉任何未使用的输出。
EIGHT_BITADDER_INST : eight_bitadder
port map (
a => a,
b => b,
f => f,
c => open,
o => overflow,
z => open
);
答案 1 :(得分:2)
你也可以选择不将输出绑定到这样的东西:
EIGHT_BITADDER_INST : eight_bitadder
port map (
a => a,
b => b,
f => f,
o => overflow
);
请注意,我只是在端口映射中没有包含输出c和z。有些人可能会对此的清晰度进行辩论(因为可能不清楚输出c和z是否存在),但它也将代码简化为只需要的代码。