向VHDL项目添加库

向VHDL项目添加库,vhdl,fpga,fixed-point,Vhdl,Fpga,Fixed Point,我试图在我的VHDL项目中使用定点数字,但我在实现库(在这里找到)时一直遇到问题。我在尝试模拟时收到的错误是 <ufixed> is not declared 未声明 我的问题是,究竟应该如何实现一个库,以便能够使用它?到目前为止,我已将其添加到IEEE_提议的库中的项目中,但它不起作用。所有源代码都可以在这里的hdl文件夹和libraries文件夹下找到。您使用的是modelsim吗?您正在使用项目吗?如果不是。。。我发现最好的方法是首先自己编译库。打开modelsim.ini

我试图在我的VHDL项目中使用定点数字,但我在实现库(在这里找到)时一直遇到问题。我在尝试模拟时收到的错误是

<ufixed> is not declared
未声明

我的问题是,究竟应该如何实现一个库,以便能够使用它?到目前为止,我已将其添加到IEEE_提议的库中的项目中,但它不起作用。所有源代码都可以在这里的
hdl
文件夹和
libraries
文件夹下找到。

您使用的是modelsim吗?您正在使用项目吗?如果不是。。。我发现最好的方法是首先自己编译库。打开modelsim.ini文件并创建库的路径。像这样:

lib_test = c:/test/source/lib_test
最后,编译您自己的代码,并确保使用-modelsimini开关打开
vcom
modelsim命令

如果您正在使用一个项目(我不喜欢,它们没有那么灵活),那么您可以将该项目指向库

有关使用命令编译modelsim的更多帮助:

我本人不是isim用户,通过搜索意味着您需要创建一个单独的项目来编译到库中,而从命令行定位库是多么容易

您可能还需要将库作为资源添加到项目中。有趣的是,你还没有抱怨过:

library ieee_proposed;
在delay_calculation.vhd中,注意库声明只是使名称可用。在某些地方,需要将库名称映射到库的实现依赖性映射。默认情况下,这在xilinxisim.ini中,但我认为您的项目管理界面允许您将库映射到项目中,并且isim应该知道在哪里查找库

浏览用户指南可能是值得的

在模拟步骤概述中

用户库

根据您启动ISim的方式,有不同的方法 可用于添加用户库:

  • 启动Project Navigator时,在ISE工具中定义用户库。有关详细信息,请参阅ISE帮助中的“使用VHDL库” 细节
  • 使用ISim单机版、交互式命令模式或非交互式模式时,设置库映射文件(见附录A, 指向逻辑or的库映射文件(xilinxisim.ini) 物理图书馆
  • 从PlanAhead工具启动ISim时,请在该工具中定义用户库。有关更多信息,请参阅PlanAhead用户指南(UG632) 附录D“附加资源”包含到 文件
请参阅,请参阅以创建VHDL库以将文件添加到VHDL库

(指向的顶级链接)


你可能会认为,对于我们这些叛逆者来说,有一个常见问题解答——快速阅读《宗教》大部头书,甚至使用谷歌来查找它们都很糟糕。注意,解释是从菜单下拉操作方面进行的,类似于命令行输入。我们被顶部菜单栏上的可用内容所困扰。当你成功添加和使用库时你会记得,直到有人改变菜单,你当然会对文档滞后感到好奇。

大概你试着在ISE GUI中为合成模式设置库映射,这很简单,但iSim完全忽略了,因为它有自己的管理库映射的系统。我不是iSim用户,但在查看文档和进行一些测试后,看起来最简单的设置库的方法是从命令行:

#这将使用部分编译的对象创建ieee#U建议的目录。
vhpcomp——工作ieee\u建议=ieee\u建议固定\u包装\u c.vhdl
#添加从逻辑库到物理路径的映射。
#*显示nix。Windows将与之类似,或者只使用文本编辑器。
#   =
echo ieee_proposed=`pwd`/ieee_proposed>>路径/to/your/xilinxisim.ini

确保iSim可以看到
xilinxisim.ini
文件,并且该文件应该能够获取到编译库的映射。您应该能够从
ieee\u proposed
的父级继续运行
vhpcomp
,以向库中添加更多文件。您可能必须手动复制系统默认版本以维护标准library映射。

我正在尝试使用ISim,但我不知道如何首先编译库,以便所有东西都进行模拟。有什么建议吗?然后在Vivado中就完全不同了。我知道这是一个非常简单的问题,但我似乎不知道如何创建最初的
ieee\u提出的
库。这是我一直遇到的错误g此错误
第23行:在库中找不到。请确保库已编译,并且VHDL文件中存在库和use子句。
fixed\u pkg\u c文件中有语句
use IEEE\u PROPOSED.fixed\u float\u types.all;
。它正在查找在那里定义的常见类型。您需要编译首先,在编译主包时,它应该是可见的。