完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我对此很新,所以我的知识有限。 我正在学习电子学,并且一直在使用spartan 3E入门板进行简单的VHDL项目。 我们已经教会通过以下列方式声明每个模块来映射引脚和内部信号来实现顶层模块, “VHDL模块名称”:实体(模块名称)端口映射(clk => clk等等=>等) 这适用于在spartan 3E上实现代码。 然而,我天真地买了一个斯巴达6板,这似乎不起作用。 编译器抛出: “编译器error40”VHDL实体名称“不是实体” “编译器错误66”VHDL实体名称“不是实体” 我搜索了错误的错误支持,并意识到它与斯巴达6的新实现协议有关。错误40与具有相同名称的信号和组件有关,我现在试图解决这个问题。 然而,在支持网站上没有关于错误的信息66.我担心我已经展示了如何实现顶级模块的方式从根本上是有缺陷的。任何帮助将不胜感激。 |
|
相关推荐
4个回答
|
|
原则上,你试图做的事情没有错。
直接实例化模块的方法(而不是首先在架构中声明一个组件)是“相对”新的,似乎是首选的方法(我真的不知道为什么 - 也许是为了更清晰,更少的代码行? )。 在任何情况下,它应该完全独立于FPGA的类型,因为这是一种语言结构。 假设您正在以某种形式使用ISE进行编译和综合,那么Xilinx的错误数字很难被追踪,几乎是你甚至不应该打扰的地方。 您已确定第一个问题,因此请修复该问题,然后重新编译并查看会发生什么。 通常情况下,一个错误会导致另一个错误的“多米诺骨牌效应”,只需修复发现的第一个错误就可以解决问题。 关于实例化方法需要注意的一点是“VHDL模块名称”应该是没有空格的实例化名称,并且实体(模块)可能位于必须首先声明的库中,例如, library my_work; 使用my_work.all; MY_INSTANCE_1:实体my_work.my_instance 通用地图() 端口图()... 我相信这实际上有助于而不是混淆问题! ----------“我们必须学会做的事情,我们从实践中学习。” - 亚里士多德 |
|
|
|
嗨,
有一个综合解析器从spartan-3e变为spartan-6。 你能复制粘贴实例化语句吗? 您是否使用相同的名称作为实例名称和组件名称? 检查此链接 http://www.xilinx.com/support/answers/32997.htm 这里有一些其他相关文章 http://www.xilinx.com/support/answers/32993.htm http://www.xilinx.com/support/answers/32971.htm 希望这可以帮助。 谢谢, 迪皮卡。 谢谢,迪皮卡.---------------------------------------------- ---------------------------------------------- Google之前的问题 张贴。 如果某人的帖子回答了您的问题,请将帖子标记为“接受为解决方案”。 如果你看到一个特别好的和信息丰富的帖子,考虑给它Kudos(左边的明星) |
|
|
|
roebot写道:
嗨, 我对此很新,所以我的知识有限。 我正在学习电子学,并且一直在使用spartan 3E入门板进行简单的VHDL项目。 我们已经教会通过以下列方式声明每个模块来映射引脚和内部信号来实现顶层模块, “VHDL模块名称”:实体(模块名称)端口映射(clk => clk等等=>等) 这适用于在spartan 3E上实现代码。 然而,我天真地买了一个斯巴达6板,这似乎不起作用。 编译器抛出: “编译器error40”VHDL实体名称“不是实体” “编译器错误66”VHDL实体名称“不是实体” 我搜索了错误的错误支持,并意识到它与斯巴达6的新实现协议有关。错误40与具有相同名称的信号和组件有关,我现在试图解决这个问题。 然而,在支持网站上没有关于错误的信息66.我担心我已经展示了如何实现顶级模块的方式从根本上是有缺陷的。任何帮助将不胜感激。 这种直接实例化的正确语法是 thelabel:entity work.entityname 港口地图( clk => clk, 这个=>这个, 那个=>那个); 在上面, 标签是你想要调用实例的任何东西 entityname是您要实例化的实体的名称 work是您分析实体的库的名称。 work是默认值,除非您明确了解正在分析较低级实体的库。 如果将其保留为默认值,则仍必须在实例化中将工作指定为库。 这一切都应该与“新解析器”等完全无关。确保你的VHDL是正确的。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
hgleamon1写道:
原则上,你试图做的事情没有错。 直接实例化模块的方法(而不是首先在架构中声明一个组件)是“相对”新的,似乎是首选的方法(我真的不知道为什么 - 也许是为了更清晰,更少的代码行? )。 它是首选,因为它消除了声明组件然后实例化组件的需要。 在直接实例化添加到语言之前 - 作为VHDL'93的一部分,所以我猜它是“相对”新的 - 你必须处理组件声明的重复(使用端口列表)和实例化。 如果你是懒惰的,你将创建组件声明并将其放在实例化实体的体系结构的声明部分中。 如果你不那么懒惰,你将创建一个包含该组件声明的包,并在实例化实体中使用它。 但是,在任何一种情况下,如果修改了底层实体的端口映射,则必须修改组件声明(以及实例)。 这是要记录的很多东西。 组件实例化与直接实例化的主要优点是后者要求以正确的顺序对所有源进行分析。 如果在分析上级之前没有将实体下级分析为工作,那么当您分析后者时,您将收到错误。 如果使用组件实例,只要在分析实例化实体时组件声明可用,则是否已经分析了较低级别的实体并不重要。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
只有小组成员才能发言,加入小组>>
2260 浏览 7 评论
2664 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2155 浏览 9 评论
3227 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2296 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
546浏览 1评论
1615浏览 1评论
114浏览 1评论
在使用xc5vsx95T时JTAG扫片不成功,测量TDO无信号输出
2264浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-7 18:11 , Processed in 1.239132 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号