UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Visitor sx1995
Visitor
389 次查看

Vivado中使用package,调用子程序的问题

转到解答

1、使用Vivado的版本是2017.4,语言为VHDL

2、现在子程序文件为my_pack.vhd,在用户程序中调用

my_pack程序代码如下:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

package my_pack is
	function max(a,b: in std_logic_vector) return std_logic_vector;
end my_pack;
package body my_pack is function max(a,b: in std_logic_vector) return std_logic_vector is begin if a>b then return a; else return b; end if; end; end my_pack;

在其他程序中调用的时候的语句如下,但是始终报错,报错信息为[Synth 8-4169] error in use clause: package 'my_pack' not found in library 'test_lib' 

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;		
use ieee.std_logic_arith.all;

library test_lib;
use test_lib.my_pack.all;
0 项奖励
1 个已接受解答

已接受的解答
Moderator
Moderator
278 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

Hi, @zhendon , @sx1995 ,

我看了一下两位的源文件,问题的应该是package文件前的注释造成的,且与注释的内容无关, 把注释放到文件末尾package 也能被正常识别. 

我会与研发确认一下是否是工具的问题.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
11 条回复
Community Manager
Community Manager
362 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

@sx1995

 

你可以用vivado默认的work library。

然后只需要写

use work.my_pack.all; 试试看。

 

或者按照你的代码,申明了test_lib以后,

再右键你的代码文件,set library,填入你的test_lib

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Visitor sx1995
Visitor
359 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

谢谢回复!我都试过了,利用默认的work库试过了,还是报错;我自己添加库test_lib 也报错,报错信息是一样的。

0 项奖励
Community Manager
Community Manager
356 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

@sx1995

 

代码能作为附件贴一下么。我可以试一下。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Visitor sx1995
Visitor
344 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

可以,代码在下面附件中,您试一下!这是我测试的程序。

0 项奖励
Community Manager
Community Manager
305 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

@sx1995

我试了一下,你的文件my pack调用进来显示non-module file。一般可能是语法错误造成的。不过我review了一下你的code,也没什么问题。

我这边用你的文件重写了一下,可以调用。但是我比较了一下,没有任何区别,这个问题很奇怪。你能试试看我这边的这个文件么。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
Moderator
Moderator
279 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

Hi, @zhendon , @sx1995 ,

我看了一下两位的源文件,问题的应该是package文件前的注释造成的,且与注释的内容无关, 把注释放到文件末尾package 也能被正常识别. 

我会与研发确认一下是否是工具的问题.

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Visitor sx1995
Visitor
258 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

不好意思这么长时间才回复您,您那边试是可以调用的吗? 我这边试还是不可以调用的,您是把package文件放在work库下面吗?

0 项奖励
Visitor sx1995
Visitor
255 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

多谢多谢,还麻烦有消息之后回复一下我!

0 项奖励
Visitor sx1995
Visitor
252 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答
可能是不能放在work库下面,我重新建了一个库就可以了,多谢您的帮助,可能就是注释的问题!
0 项奖励
Moderator
Moderator
195 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

Hi, @sx1995 ,

现在这个问题已经在我本地复现并反馈给了开发人员,有什么进展我会及时告知你.

你可以把注释放到文件尾部先绕过这个问题. 

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Moderator
Moderator
176 次查看

回复: Vivado中使用package,调用子程序的问题

转到解答

Hi, @sx1995 ,

问题应该是由于您的my_pack.vhd 文件是 MAC format 造成的, 需要用以下命令预先处理一下解决这个问题:

mac2unix my_pack.vhd

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------