完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
嗨,
在我的设计中,我使用两个实体,ShiftRegister和LineBuffer。 两者都具有在包中定义的相同类型,并使用它来创建通用以选择不同的操作模式之一: 类型PT_PADDING是(NONE,CONST,MIRROR,REPLICATE); 实体ShiftRegister是通用的( gPaddingType:PT_PADDING ); 我想创建自己的实体,将泛型传递给它上面的实体,所以我这样做: 使用work.ShiftRegisterPackage.all;使用work.LineBufferPackage.all; entity Filter是通用的(gPaddingTypeLineBuffer:work.LineBufferPackage.PT_PADDING:= MIRROR; gPaddingTypeShiftregister:work.ShiftRegisterPackage.PT_PADDING:= MIRROR); 但是当我像这样实例化我的实体时 Filter1:entity work.Filter(Behavior)通用映射(gPaddingTypeLineBuffer => MIRROR,gPaddingTypeShiftregister => MIRROR) 我从ISE得到以下错误: 错误:HDLParsers:850 - 第265行。正式端口gPaddingTypeLineBuffer在实体'Filter'中不存在.ERROR:HDLParsers:850 - 第266行。实体端口gPaddingTypeShiftregister在实体“过滤器”中不存在。 我的语法有错误吗? 我做了一些关于如何做的搜索,但到目前为止我什么都没想出来......或者在VHDL中它是不可能的? 谢谢你的帮助 约翰内斯 以上来自于谷歌翻译 以下为原文 Hi, in my design I use two entities, ShiftRegister and LineBuffer. Both have the same type defined in a package and use it to create a generic to select one of the different operation modes: type PT_PADDING is (NONE, CONST, MIRROR, REPLICATE); entity ShiftRegister is generic( gPaddingType : PT_PADDING ); I want to create my own entity which passes the generics through to an entity on top of it, so i do: use work.ShiftRegisterPackage.all; use work.LineBufferPackage.all; entity Filter is generic ( gPaddingTypeLineBuffer : work.LineBufferPackage.PT_PADDING := MIRROR; gPaddingTypeShiftregister : work.ShiftRegisterPackage.PT_PADDING := MIRROR ); However when I instantiate my entity like this Filter1 : entity work.Filter(Behaviour) generic map( gPaddingTypeLineBuffer => MIRROR, gPaddingTypeShiftregister => MIRROR ) I get the following errors form ISE: ERROR:HDLParsers:850 - Line 265. Formal port gPaddingTypeLineBuffer does not exist in Entity 'Filter'. ERROR:HDLParsers:850 - Line 266. Formal port gPaddingTypeShiftregister does not exist in Entity 'Filter'. Is there an error in my syntax? I did some search on how to do it, but I came up with nothing so far ... Or is it not possible in VHDL? Thanks for any help Johannes |
|
相关推荐
8个回答
|
|
我现在就开始工作了。
我必须先声明组件,而不是直接实例化实体。 这种方式有效:-) 谢谢您的帮助! 在原帖中查看解决方案 以上来自于谷歌翻译 以下为原文 I got it working now. I had to declare the component first instead of directly instantiating the entity. This way it works :-) Thanks for the help! View solution in original post |
|
|
|
johannes.ab写道:
嗨, 在我的设计中,我使用两个实体,ShiftRegister和LineBuffer。 两者都具有在包中定义的相同类型,并使用它来创建通用以选择不同的操作模式之一: 类型PT_PADDING是(NONE,CONST,MIRROR,REPLICATE); 实体ShiftRegister是通用的( gPaddingType:PT_PADDING ); 我想创建自己的实体,将泛型传递给它上面的实体,所以我这样做: 使用work.ShiftRegisterPackage.all;使用work.LineBufferPackage.all; entity Filter是通用的(gPaddingTypeLineBuffer:work.LineBufferPackage.PT_PADDING:= MIRROR; gPaddingTypeShiftregister:work.ShiftRegisterPackage.PT_PADDING:= MIRROR); 但是当我像这样实例化我的实体时 Filter1:entity work.Filter(Behavior)通用映射(gPaddingTypeLineBuffer => MIRROR,gPaddingTypeShiftregister => MIRROR) 我从ISE得到以下错误: 错误:HDLParsers:850 - 第265行。正式端口gPaddingTypeLineBuffer在实体'Filter'中不存在.ERROR:HDLParsers:850 - 第266行。实体端口gPaddingTypeShiftregister在实体“过滤器”中不存在。 我的语法有错误吗? 我做了一些关于如何做的搜索,但到目前为止我什么都没想出来......或者在VHDL中它是不可能的? 谢谢你的帮助 约翰内斯 a)在实体定义中,不需要添加work.LineBufferPackage。 PT_PADDING类型声明的前缀。 b)你确定你做了一个 使用work.LineBufferPackage.all; 在实例化Filter的实体顶部? c)您是否确保在实例化(更高级别)实体之前分析(编译)过滤器? 这应该都有效...... ----------------------------是的,我这样做是为了谋生。 以上来自于谷歌翻译 以下为原文 johannes.ab wrote:a) in the entity definition, there's no need to add the work.LineBufferPackage. prefix to the PT_PADDING type declaration. b) did you ensure that you did a use work.LineBufferPackage.all; at the top of the entity that instantiates Filter? c) did you ensure that Filter is analyzed (compiled) before the instantiating (higher-level) entity? this should all work ... ----------------------------Yes, I do this for a living. |
|
|
|
我试过跳过work.LineBufferPackage前缀,但我没有工作。
我还检查了另外两点。 在Filter I中,实例化一个使用LineBufferPackage中的LineBuffer和PT_PADDING的实体,另一个使用ShiftRegisterPackage中的Shiftregister和PT_PADDING的实体。 两者编译都很好,在Filter编译之前。 如果我跳过我得到的前缀 错误:HDLParsers:800 - gPaddingType的类型与gPaddingTypeLineBuffer的类型不兼容。 用于实例化使用LineBuffer的实体 所以我添加了work.LineBufferPackage前缀,但后来我得到了 错误:HDLParsers:800 - gPaddingType的类型与gPaddingTypeShiftregister的类型不兼容。 用于实例化使用Shiftregister的实体 添加两个前缀后,过滤器编译,但我得到了更高级实体编译后我已经提到的错误: 错误:HDLParsers:850 - 第265行。正式端口gPaddingTypeLineBuffer在实体'Filter'中不存在.ERROR:HDLParsers:850 - 第266行。实体端口gPaddingTypeShiftregister在实体“过滤器”中不存在。 以上来自于谷歌翻译 以下为原文 I tried skipping the work.LineBufferPackage prefix but i didn't work. I also checked the other two points. In Filter I instantiate one entity which uses LineBuffer and PT_PADDING from LineBufferPackage and another one which uses Shiftregister and PT_PADDING from ShiftRegisterPackage. Both compile fine and before Filter gets compiled. If I skip the prefixes I get ERROR:HDLParsers:800 - Type of gPaddingType is incompatible with type of gPaddingTypeLineBuffer. for the instantiation of the entity that uses LineBuffer So I added the work.LineBufferPackage prefix but then I get ERROR:HDLParsers:800 - Type of gPaddingType is incompatible with type of gPaddingTypeShiftregister. for the instantiation of the entity that uses Shiftregister after adding both prefixes Filter compiles but I get the errors I already metioned when the higher-level entity gets compiled: ERROR:HDLParsers:850 - Line 265. Formal port gPaddingTypeLineBuffer does not exist in Entity 'Filter'. ERROR:HDLParsers:850 - Line 266. Formal port gPaddingTypeShiftregister does not exist in Entity 'Filter'. |
|
|
|
这听起来像是一个组件声明问题。
您是否也在组件中包含泛型? ------您是否尝试在Google中输入问题? 如果没有,你应该在发布之前。太多结果? 尝试添加网站:www.xilinx.com 以上来自于谷歌翻译 以下为原文 This sounds like more of a component declaration issue. Are you including the generics in the component as well? ------Have you tried typing your question into Google? If not you should before posting. Too many results? Try adding site:www.xilinx.com |
|
|
|
“这听起来像是一个组件声明问题。”在发布的代码片段中,OP正在使用实体实例化。因此,必须确保在实例化之前编译/分析“过滤器”。
------------------------------------------“如果它不起作用 模拟,它不会在板上工作。“ 以上来自于谷歌翻译 以下为原文 "This sounds like more of a component declaration issue." In the posted code snippet, the OP is using entity instantiation. He must therefore ensure that 'Filter' is compiled/analyzed before whatever it is instantiated in. ------------------------------------------ "If it don't work in simulation, it won't work on the board." |
|
|
|
我现在就开始工作了。
我必须先声明组件,而不是直接实例化实体。 这种方式有效:-) 谢谢您的帮助! 以上来自于谷歌翻译 以下为原文 I got it working now. I had to declare the component first instead of directly instantiating the entity. This way it works :-) Thanks for the help! |
|
|
|
johannes.ab写道:
我现在就开始工作了。 我必须先声明组件,而不是直接实例化实体。 这种方式有效:-) 谢谢您的帮助! 这是whyrcingham和我都说你必须确保在实例化它之前对Filter实体进行分析(编译)。 虽然这样做有效,但这是一个痛苦的屁股,我避免了组件声明的事情,因为它是一个维护噩梦。 要么在实例化器的声明区域(架构线和它的开头之间)声明组件接口,要么必须将组件接口放在包中。 然后,您必须确保在使用它之前对包进行分析。 ----------------------------是的,我这样做是为了谋生。 以上来自于谷歌翻译 以下为原文 johannes.ab wrote:This is why rcingham and I both said that you have to ensure that the Filter entity is analyzed (compiled) before the entity that instantiates it. While that works, it's a pain in the ass, and I avoid the component declaration thing because it's a maintenance nightmare. Either you declare the component interface in the instantiator's declarative area (between the architecture line and its begin), or you have to put the component interface in a package. And then you have to ensure that the package is analyzed before the source that uses it. ----------------------------Yes, I do this for a living. |
|
|
|
“你必须确保在使用它的源之前分析软件包。”为了给它它到期,XST通常管理,前提是你记得将软件包文件包含在源列表中。
------------------------------------------“如果它不起作用 模拟,它不会在板上工作。“ 以上来自于谷歌翻译 以下为原文 "you have to ensure that the package is analyzed before the source that uses it." Which, to give it it's due, XST usually manages provided that you remember to include the package file in the list of sources. ------------------------------------------ "If it don't work in simulation, it won't work on the board." |
|
|
|
只有小组成员才能发言,加入小组>>
2380 浏览 7 评论
2797 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2262 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2428 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
756浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
545浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
366浏览 1评论
1963浏览 0评论
682浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 00:49 , Processed in 1.381329 second(s), Total 90, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号