我在 ISE 中创建了一个 VHDL 模块并生成了相应的原理图符号。我希望符号中的总线是可变宽度的,使用原理图布局编辑器中的属性指定。整个项目的 DRC 是可以的,但是当我尝试合成顶层原理图时,它会为我指定为“变量”的每个端口引发错误。我根据此处和此处列出的常识和示例建立了这一点。
模块的VHDL:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity BUS_SWITCHER is
generic (
WIDTH : integer := 1 -- Structure
);
port (
A : in STD_LOGIC_VECTOR (WIDTH - 1 downto 0);
B : in STD_LOGIC_VECTOR (WIDTH - 1 downto 0);
X : out STD_LOGIC_VECTOR (WIDTH - 1 downto 0);
Y : out STD_LOGIC_VECTOR (WIDTH - 1 downto 0);
S : in STD_LOGIC
);
end BUS_SWITCHER;
architecture Behavioral of BUS_SWITCHER is
begin
process (A, B, S)
begin
if S = '1' then
X <= B;
Y <= A;
else
X <= A;
Y <= B;
end if;
end process;
end Behavioral;
模块符号(在连接到 4 x 256 宽总线的示意图中):
属性窗口:
错误日志:
ERROR:DesignEntry:20 - Pin "A(0:0)" is connected to a bus of a different width.
ERROR:DesignEntry:20 - Pin "B(0:0)" is connected to a bus of a different width.
ERROR:DesignEntry:20 - Pin "Y(0:0)" is connected to a bus of a different width.
ERROR:DesignEntry:20 - Pin "X(0:0)" is connected to a bus of a different width.