Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
端口声明中的自定义类型vhdl_Vhdl - Fatal编程技术网

端口声明中的自定义类型vhdl

端口声明中的自定义类型vhdl,vhdl,Vhdl,我想为程序使用自定义输出端口。 我读过,但它并不能解决我的问题 在my_package.vhd中: 包我的包是 自定义类型为(a1、a2、a3、a4); 端包装; 然后在我的vhdl程序中: 使用work.my_package.all; 实体测试是 端口(测试:输出自定义类型); 终端实体测试; 体系结构测试 自定义类型为(a1、a2、a3、a4); 信号s:自定义_类型; 开始 testInt您已经在my\u包中声明了自定义类型。因为您在test实体的体系结构中再次声明了它,所以您已经有效地

我想为程序使用自定义输出端口。 我读过,但它并不能解决我的问题

在my_package.vhd中:

包我的包是
自定义类型为(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子句出现在根声明性区域中)。注释掉内部声明。