在Aldec Active-HDL中,vlib应该创建一个工作库,例如:
vlib my_lib这将在当前目录下创建一个"my_lib“目录,但附带警告:
警告:无法创建库
随后的set worklib my_lib失败,错误为" error : Design“,使用vcom -work my_lib tb.vhd的编译完成时没有输出,也没有将任何内容编译到"my_lib”目录中。因此,即使通过创建"my_lib“目录,也无法将其作为"my_lib”库提供给VHDL编译。
如果通过vsimsa.bat使用Aldec Active-HDL命令行接口(CLI),它工作得很好。
要使Tcl vlib命令从GUI控制台窗口工作需要什么?
问题可能是本地"library.cfg“文件不是通过执行vlib my_lib创建的,所以在本例中,如何创建本地"library.cfg”文件以进行简单的模块编译和仿真?
发布于 2015-06-17 17:57:01
这可能不是您的问题的根源,但我只是觉得有必要让您了解滥用工作作为库名的问题。
在VHDL中,work实际上不是一个有效的库名。它也不是某种预定义的默认库。VHDL标准将work定义为当前工作库的特殊别名。因此,可以在VHDL文件中使用work引用同一个库中的其他设计单元,而不知道要分析它们的库的名称。由于work是一个特殊的别名,因此不需要在任何use work.pkg.all子句之前引用library work子句。
不幸的是,许多VHDL工具允许设计人员创建名为work的库,有些甚至鼓励它造成混乱。只要在另一个库中没有设计单元试图引用错误命名的工作库中的设计单元,这就可以正常工作。这是因为work名称将是分析到该库的文件上下文中的另一个库的别名。
即使在经验丰富的VHDL设计者中,这一事实也鲜为人知。也许造成混乱的根本原因是许多工具经常谈论“工作库”,意思是“当前的工作库,不管它叫什么”,人们把它解释为实际上应该将其命名为work。
工作问题的例子:
pkg.vhd
package pkg is
end package;file.vhd
use work.pkg.all;好案例
vcom -work lib pkg.vhd
vcom -work lib file.vhdpkg.vhd和file.vhd文件可以编译成任何名称的库,因为它们使用work别名。
坏情况
vcom -work work pkg.vhd
vcom -work lib file.vhd第二个命令将出现错误,因为work在分析file.vhd时引用了lib,因为当前的工作库是lib。在名不好的work库中从lib中引用任何东西是不可能的,因为包含特殊别名work的所有引用都将被转换为lib。
发布于 2015-06-19 11:23:18
似乎不可能用设计在工作区外创建库,因此必须创建这个库。
https://stackoverflow.com/questions/30894538
复制相似问题