我是ghdl模拟器的新手,并在Windows上使用ghdl。我已经在我的计算机上设置了ghdl(ghdl-0.33-win32)并尝试了简单的加法器代码并且它有效。我目前需要模拟一些数学方程式,其中我使用了David Bishop的固定和浮点包。当我将库包含到我的并编译它时,它会给出错误:
在库“ieee”中找不到“fixed_pkg”
或者如果我将fixed_pkg_c文件复制到我的项目文件中,则使用work:
进行编译“fixed_pkg”在库“work”中找不到
有人可以告诉我(包括我应该遵循的命令集)包含这些固定和浮动包吗?
答案 0 :(得分:2)
ghdl-0.33-win32安装为VHDL标准的IEEE 1076-2008修订版提供部分支持。
此支持包括David Bishop的固定和浮点合成符合条件的库,其中包含该版本(参见IEEE Std 1076-2008,16。预定义语言环境,16.10定点包和16.11浮点包)。作为该修订版中公认的IEEE软件包,它们可以在IEEE IEEE。
中找到ghdl -is 93c支持的默认修订版(-1993,支持范围索引中的混合文字和表达式边界,后面的标准版本支持)。
使用--std = 08选项分析(-a)和精化(-e)命令,可以调用带有-2008版本符合性的ghdl。
在ghdl的时间代码生成版本(如Win32发行版)中使用mcode(仅在时间代码中)发现了一个区别:
来自GHDL Documentation的最新Invoking GHDL部分,用于运行命令:
运行/模拟设计。选项和参数与for相同 精化命令。
- GGC / LLVM:简单地说,确定可执行文件的文件名并执行它。选项被忽略。您也可以直接执行 该程序。可执行文件必须位于当前目录中。
- mcode:详细阐述设计并启动模拟。因此,您必须使用分析期间使用的相同选项。
在为Win32分发的mcode版本中,-e elaborate命令是多余的,运行命令(-r)必须包含与分析命令(-a)相同的选项。
与ghd的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)还允许选择多个体系结构之一或声明的配置。
对于mhd版本的ghdl,忽略了elaboration命令,既没有来自分析的目标代码文件也没有生成单独的可执行文件,而有一个库文件(对于名为work的工作库和-2008,这将被命名)默认情况下,work-obj08.cf用于协调标准所要求的分析顺序。
对于ghdl的mcode版本,最小命令为:
ghdl -a --std=08 vhdl_file_name ghdl -r --std=08 entity_name
如果elaboration命令是多余的,那么在使用run命令进行仿真之前的详细说明以及与analyze命令共享的任何有效精化选项都必须传递给run命令。
要使用--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 Documentation在颜色条突出显示的段落中提供了有用的提示。
因为ghdl是开源的,所以在很大程度上取决于用户反馈,以纠正操作和文档中的差异。
差异可以报告为issue(需要github登录)。反映ghdl文档缺乏明确性的问题可以带来改进。
支持GHDL波形格式的波形查看器GTKWave可以从Sourceforge获得。 ghdl也支持gtkwave使用的VCD和FST波形转储文件格式。