Vhdl 符号端口上的通用驱动自定义总线宽度

Vhdl 符号端口上的通用驱动自定义总线宽度,vhdl,xilinx,bus,xilinx-ise,Vhdl,Xilinx,Bus,Xilinx Ise,我在ISE中创建了一个VHDL模块,并生成了相应的原理图符号。我希望符号中的总线是可变宽度的,使用原理图布局编辑器中的属性指定。一个完整的项目DRC是可以的,但当我试图综合顶层原理图时,它会为我指定为“变量”的每个端口抛出一个错误。我是根据常识和列举的例子建立起来的 模块的VHDL: 图书馆IEEE; 使用IEEE.STD_LOGIC_1164.ALL; 实体总线切换器为 通用的 宽度:整数:=1-结构 ; 港口城市 A:在标准逻辑中,矢量宽度-1降到0; B:在标准逻辑中,向量宽度-1降到0;

我在ISE中创建了一个VHDL模块,并生成了相应的原理图符号。我希望符号中的总线是可变宽度的,使用原理图布局编辑器中的属性指定。一个完整的项目DRC是可以的,但当我试图综合顶层原理图时,它会为我指定为“变量”的每个端口抛出一个错误。我是根据常识和列举的例子建立起来的

模块的VHDL:

图书馆IEEE; 使用IEEE.STD_LOGIC_1164.ALL; 实体总线切换器为 通用的 宽度:整数:=1-结构 ; 港口城市 A:在标准逻辑中,矢量宽度-1降到0; B:在标准逻辑中,向量宽度-1降到0; X:输出标准逻辑向量宽度-1到0; Y:输出标准逻辑向量宽度-1到0; S:在标准逻辑中 ; 端总线开关; 总线交换机的结构是 开始 过程A、B、S 开始 如果S='1',则
在实例化该模块时,需要将其连接到宽度相等的std_逻辑_向量。因此,在这种情况下,更高级别的模块需要创建一个中间信号,即std_logic_vector0到0。如果要将其转换为单个std_逻辑,可以按如下方式进行:

single_bit <= entire_vector(0);

由于这个原因,我尽量避免使用长度为1的std_logic_向量,它们可能会很麻烦。

也许我没有很好地回答我的问题,我正在寻找创建一个可变宽度的端口。事实上,它是图像中的单宽度std_logic_向量,因为这是我设置的默认值。问题是泛型的默认值没有被实例上指定的属性覆盖。@MTCoster尝试删除实体和包文件(如果使用)中的默认值。仅在实例化时给它一个覆盖值。