3

我是 ghdl 模拟器的新手,并且在 Windows 上使用 ghdl。我已经在我的计算机上设置了 ghdl (ghdl-0.33-win32) 并尝试了简单的加法器代码并且它有效。我目前需要模拟一些使用 David Bishop 的定点和浮点包的数学方程。当我将库包含到我的并编译它时,它会给出错误:

在库“ieee”中找不到“fixed_pkg”

或者,如果我将 fixed_pkg_c 文件复制到我的项目文件中,则使用工作进行编译:

在库“工作”中找不到“fixed_pkg”

有人可以告诉我包含这些固定和浮动包的方式(或我应该遵循的命令集)吗?

4

1 回答 1

2

ghdl -0.33-win32安装为 VHDL 标准的 IEEE 1076-2008 修订版提供部分支持。

此支持包括 David Bishop 的定点和浮点综合合格库,这些库包含在该修订版中(参见 IEEE Std 1076-2008, 16. Predefined language environment, 16.10 Fixed-point package 和 16.11 Floating-point package)。作为该修订版中公认的 IEEE 软件包,它们可以在图书馆 IEEE 中找到。

ghdl -is 93c 支持的默认版本(-1993 支持范围索引中的混合文字和表达式边界,该标准的后续版本支持)。

通过使用 --std=08 选项来分析 (-a) 和细化 (-e) 命令来调用具有 -2008 修订版合规性的 ghdl。

在 ghdl 的时间码生成版本(例如 Win32 发行版)中使用 mcode(即时码)有一个区别:

从关于为运行命令调用 GHDL的最新GHDL 文档部分:

运行 -r

运行/模拟设计。选项和参数与精化命令相同。

  • GGC/LLVM:简单来说就是确定可执行文件的文件名并执行。选项被忽略。您也可以直接执行该程序。可执行文件必须在当前目录中。
  • mcode:详细设计并启动仿真。因此,您必须使用分析期间使用的相同选项。

在诸如为 Win32 分发的 mcode 版本中,-e 详细命令是多余的,运行命令 (-r) 必须包含与分析命令 (-a) 相同的选项。

与 ghdl 的 GCC 或 LLVM 版本不同,mcode 版本需要为运行命令提供任何相关选项以进行详细说明。

对于 GCC 或 LLVM ghdl 实现以及 VHDL 文件和实体,用于分析、详细说明和模拟在文件中找到的实体的命令将是:

ghdl -a --std=08 vhdl_file_name
ghdl -e --std=08 entity_name
ghdl -r entity_name

用于模拟的运行命令 (-r) 还允许选择多个架构之一或声明的配置。

对于 ghdl 的 mcode 版本,详细说明命令被忽略,既没有来自分析的目标代码文件,也没有生成单独的可执行文件,而有一个库文件(对于名为 work 的工作库,对于 -2008,这将被命名为 work-obj08 .cf 默认)用于协调标准要求的分析顺序。

对于 ghdl 的 mcode 版本,最少的命令是:

ghdl -a --std=08 vhdl_file_name
ghdl -r --std=08 entity_name

如果精化命令是多余的,则在模拟之前使用运行命令的精化以及也与分析命令共享的任何有效精化选项都必须传递给运行命令。

要使用 --std=08 访问 IEEE -2008 库中的 fixed_pkg 包,您的实体或体系结构必须在上下文子句的范围内,从而使 fixed_pkg 中的声明可见:

library ieee;
use ieee.fixed_pkg.all;

使fixed_pkg 中的声明可见的use 子句。

Tristan 刚刚发布了ghdl-0.34,它目前包括一个 win32 mcode 版本 (mingw32) 和一个 64 位 LLVM 版本 (mingw64)。匹配的GHDL 文档在颜色条突出显示的段落中提供了有用的提示。

由于 ghdl 是开源的,它在很大程度上取决于用户反馈来纠正操作和文档中的差异。

差异可以报告为问题(需要 github 登录)。反映 ghdl 文档中缺乏明确性的问题可能会导致改进。

GTKWave 是一个支持 GHDL 波形格式的波形查看器,可以从Sourceforge获得。ghdl 还支持 gtkwave 使用的 VCD 和 FST 波形转储文件格式。

于 2017-08-12T22:41:57.013 回答