端口声明中的自定义类型vhdl
我想为程序使用自定义输出端口。 我读过,但它并不能解决我的问题 在my_package.vhd中:端口声明中的自定义类型vhdl,vhdl,Vhdl,我想为程序使用自定义输出端口。 我读过,但它并不能解决我的问题 在my_package.vhd中: 包我的包是 自定义类型为(a1、a2、a3、a4); 端包装; 然后在我的vhdl程序中: 使用work.my_package.all; 实体测试是 端口(测试:输出自定义类型); 终端实体测试; 体系结构测试 自定义类型为(a1、a2、a3、a4); 信号s:自定义_类型; 开始 testInt您已经在my\u包中声明了自定义类型。因为您在test实体的体系结构中再次声明了它,所以您已经有效地
包我的包是
自定义类型为(a1、a2、a3、a4);
端包装;
然后在我的vhdl程序中:
使用work.my_package.all;
实体测试是
端口(测试:输出自定义类型);
终端实体测试;
体系结构测试
自定义类型为(a1、a2、a3、a4);
信号s:自定义_类型;
开始
testInt您已经在my\u包
中声明了自定义类型。因为您在test
实体的体系结构中再次声明了它,所以您已经有效地创建了一个新类型。因为VHDL是强类型的,所以实体中的类型与包中声明的类型不同(并且不兼容)。编译器将使用本地声明的类型而不是包中的类型
只需从架构中删除一个,并使用来自包中的一个,该包已通过use work.my_package.all可见代码>条款。IEEE Std 1076-2008 6.2类型声明“通过细化不同类型定义创建的类型是不同类型。“12.3可见性”声明被称为隐藏在(部分)中如果内部区域包含此声明的同形词,则为内部声明性区域;然后外部声明隐藏在内部同形词的直接作用域内。“custom_类型的第二个声明将包声明隐藏在架构体中(内部声明性区域,use子句出现在根声明性区域中)。注释掉内部声明。