问题标签 [ghdl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
305 浏览

ghdl - GHDL、预编译供应商原语和 Cocotb

我有一个使用 Lattice Diamond 生成的 IP 模块的设计。这使用了作为供应商库的 diamond 附带的 Macxo3l 库。

使用 GHDL,我可以使用https://ghdl.readthedocs.io/en/latest/building/PrecompileVendorPrimitives.html中的说明然后是命令来编译包括这个库的设计。

但是我一直无法使用 cocotb 进行编译。下面是我的make文件。我在哪里使用命令 VHDL_SOURCES_Lib,我在https://cocotb.readthedocs.io/en/latest/building.html找到了参考

然而,编译这个给了我错误:

我能够使用 GHDL 运行 cocotb 示例。我应该如何指示 cocotb 包含供应商原始文件。

感谢您提供任何帮助。

0 投票
2 回答
192 浏览

package - 如何在包/包主体声明后使用“std_logic”?

我正在尝试使用 VHDL 变得更好,因此我想尝试实现“package ... is”和“package body ... is”功能。当我这样做时,似乎“std_logic”在 GHDL 分析步骤中看不到 IEEEE 库的内容。

到目前为止,我尝试了带有和不带有代码的命令->相同的结果。没有“包”行,它就像一个魅力......但我将无法像计划的那样扩展它。

具体的错误消息是:“[...] error: no declaration for “std_logic”

期待您的回答。

0 投票
2 回答
1884 浏览

vhdl - VHDL:添加两个数字时的边界检查错误

为什么这个 VHDL 代码会导致边界检查失败?我的结果信号比要添加的最宽数字宽 1 位......因此它不应该溢出......我错过了什么吗?

C:> ghdl -a --std=08 --ieee=synopsys --work=work testbench.vhd

C:> ghdl --elab-run --std=08 --ieee=synopsys 测试台 --ieee-asserts=disable

ghdl.exe:错误:testbench.vhd:13 的绑定检查失败来自:testbench.vhd:13 处的 process work.testbench(sim).P0

ghdl.exe:错误:模拟失败

0 投票
2 回答
181 浏览

gcc - gnatmake -o 标志产生不正确的目标文件名

我正在尝试使用 编译.adb文件gnatmake,但该-o标志没有生成我想要的目标文件名:

如您所见,它获得了正确的路径,但文件名应以 . 结尾.adb.o且仅以.o. 有任何想法吗?

0 投票
2 回答
102 浏览

g++ - 为什么一个函数最终会出现在符号表中,而另一个函数不会出现在同一个文件中?

我有一个具有两个功能的 Ada 源文件:

这两个函数都导出为 C 风格的符号,如下所示:

我像这样构建文件,至少对于一个测试用例,以显示问题:

当我nm用来查看符号表时,我看到它__ghdl_psl_assert_failed出现了,但__ghdl_psl_assume_failed没有。

编译器似乎以某种方式Ghdl_Psl_Assume_Failed()忽略了它,但除此之外我没有任何线索。当另一个源文件抱怨无法找到该函数时,我看到该错误出现在我的项目的完整构建中:

有任何想法吗?看起来这个问题在原始 GHDL 构建系统中不存在,但我必须使用我的项目的构建系统,它不使用 GHDL 使用的标准 GNAT 项目构建系统。

0 投票
1 回答
136 浏览

python - 在 VUnit 中使用不同的参数文件运行相同的测试平台

我有一个具有以下结构的项目:

top.vhd包括foo.vhd,bar.vhd以及top_parameter.vhd每个测试用例。在run.py中,首先编译文件src/夹中的文件,然后编译top_parameter.vhd每个测试用例。所有文件都在同一个库中。运行时run.py显示以下错误:

显然,top.vhd每次重新编译时都应该重新top_parameter.vhd编译,但我不知道如何构建我的run.py. 有没有办法正确编译测试,没有:

  1. 重新编译foo.vhdbar.vhd为每个测试?
  2. 为每个测试复制相同的文件tb_top.vhdrun.py

我正在使用 VUnit 4.2.0 和当前的 ghdl 大师。如果需要,我可以准备 MWE。

0 投票
2 回答
667 浏览

vhdl - VHDL 案例选择不是本地静态的

此代码适用于一些工具

  • Aldec Riviera Pro

但不是其他人

  • GHDL(错误选择必须是本地静态表达式)

https://www.edaplayground.com/x/jYD

由于 CMD_A 和 CMD_B 被声明为常量记录,我希望这可以工作......

任何智慧之言还是只是一个坏主意?

0 投票
0 回答
136 浏览

cmake - 如何使用 CMake 构建以 ghdl 作为自定义目标的源?

我想用 CMake 构建 VHDL 源代码。为此,我有一个目录结构:

在根 CMakeLists.txt 我有:

在 src/CMakeLists.txt 我有:

但是,当我运行 cd build && cmake .. -GNinja && cmake --build 时。--target vhdlize 我得到:

如何告诉 CMake 复制或查找 src 文件夹中的源?

0 投票
0 回答
423 浏览

vhdl - 带有 OSVVM 的 GHDL

我试图让 OSSVM 在 EDA Playground 上与 GHDL 一起工作。(说实话,我以为我已经有了,但它不起作用)。我也无法让它在命令行上运行。因此,鉴于此问题底部的代码(来自https://www.osvvm.org,也位于https://www.edaplayground.com/x/49J)另存为osvvm.vhd

我愿意

然后

我得到

即使我认为我已经正确安装了 GHDL 0.35。如果我做

我明白了

然后当我这样做时

我明白了

为什么 GHDL 不能“看到”osvvm库?



0 投票
1 回答
1066 浏览

vhdl - 在 GHDL/VHDL 中读取文件

我正在阅读 vhdl 中的文本文件。这方面有很多例子,但我很好奇为什么这个最小的展示示例在 GHDL 中不起作用。它在 ModelSim (by Mentor)中工作。

  1. 这是因为 GHDL 中缺少功能吗?(我在 docs/github 问题中没有找到任何内容)
  2. 这是因为我在不知道的情况下使用了错误的标准吗?

我得到的输出是:

这意味着,没有文件/无法打开,但文件存在并具有正确的访问权限(在 Modelsim 中得到证明)。我也用完整的文件名试过这个。

我在 Linux 上使用带有这些标志的 GHDL 0.37: --ieee=synopsys --std=08

如果

被替换为

被删除它在 GHDL 中工作。

但是,我仍然不知道为什么以前的版本不起作用。