我有一个16位输入总线的模块。在我的顶级实体中,我只想连接其中的4个(也是双向的)。直接连接会导致错误导致
port map( IO16bit => IO4bit )
所以我通过内部信号连接m
signal temp : std_logic_vector (15 downto 0);
port map(IO16bit => temp);
IO4bit <= temp(3 downto 0);
但现在我收到错误: 三态节点不直接驱动顶级引脚 并将扇出转换为OR门
我在这里失去了双向性。 我该如何解决这个问题?
答案 0 :(得分:1)
您可以使用port map
中的范围,然后将其余内容连接到dummy
,如:
signal dummy : std_logic_vector(15 downto 4) := (others => 'Z');
...
port map(
IO16bit( 3 downto 0) => IO4bit,
IO16bit(15 downto 4) => dummy,
...
这将编译为模拟,但您必须检查您选择的综合工具是否也可以接受构造,并正确处理它。在可综合设计中使用内部inout
端口通常是一个问题。