问题标签 [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.
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 包含供应商原始文件。
感谢您提供任何帮助。
package - 如何在包/包主体声明后使用“std_logic”?
我正在尝试使用 VHDL 变得更好,因此我想尝试实现“package ... is”和“package body ... is”功能。当我这样做时,似乎“std_logic”在 GHDL 分析步骤中看不到 IEEEE 库的内容。
到目前为止,我尝试了带有和不带有代码的命令->相同的结果。没有“包”行,它就像一个魅力......但我将无法像计划的那样扩展它。
具体的错误消息是:“[...] error: no declaration for “std_logic”
期待您的回答。
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:错误:模拟失败
gcc - gnatmake -o 标志产生不正确的目标文件名
我正在尝试使用 编译.adb
文件gnatmake
,但该-o
标志没有生成我想要的目标文件名:
如您所见,它获得了正确的路径,但文件名应以 . 结尾.adb.o
且仅以.o
. 有任何想法吗?
g++ - 为什么一个函数最终会出现在符号表中,而另一个函数不会出现在同一个文件中?
我有一个具有两个功能的 Ada 源文件:
和
这两个函数都导出为 C 风格的符号,如下所示:
我像这样构建文件,至少对于一个测试用例,以显示问题:
当我nm
用来查看符号表时,我看到它__ghdl_psl_assert_failed
出现了,但__ghdl_psl_assume_failed
没有。
编译器似乎以某种方式Ghdl_Psl_Assume_Failed()
忽略了它,但除此之外我没有任何线索。当另一个源文件抱怨无法找到该函数时,我看到该错误出现在我的项目的完整构建中:
有任何想法吗?看起来这个问题在原始 GHDL 构建系统中不存在,但我必须使用我的项目的构建系统,它不使用 GHDL 使用的标准 GNAT 项目构建系统。
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
. 有没有办法正确编译测试,没有:
- 重新编译
foo.vhd
和bar.vhd
为每个测试? - 为每个测试复制相同的文件
tb_top.vhd
?run.py
我正在使用 VUnit 4.2.0 和当前的 ghdl 大师。如果需要,我可以准备 MWE。
vhdl - VHDL 案例选择不是本地静态的
此代码适用于一些工具
- Aldec Riviera Pro
但不是其他人
- GHDL(错误选择必须是本地静态表达式)
https://www.edaplayground.com/x/jYD
由于 CMD_A 和 CMD_B 被声明为常量记录,我希望这可以工作......
任何智慧之言还是只是一个坏主意?
cmake - 如何使用 CMake 构建以 ghdl 作为自定义目标的源?
我想用 CMake 构建 VHDL 源代码。为此,我有一个目录结构:
在根 CMakeLists.txt 我有:
在 src/CMakeLists.txt 我有:
但是,当我运行 cd build && cmake .. -GNinja && cmake --build 时。--target vhdlize 我得到:
如何告诉 CMake 复制或查找 src 文件夹中的源?
vhdl - 带有 OSVVM 的 GHDL
我试图让 OSSVM 在 EDA Playground 上与 GHDL 一起工作。(说实话,我以为我已经有了,但它不起作用)。我也无法让它在命令行上运行。因此,鉴于此问题底部的代码(来自https://www.osvvm.org,也位于https://www.edaplayground.com/x/49J)另存为osvvm.vhd
,
我愿意
然后
我得到
即使我认为我已经正确安装了 GHDL 0.35。如果我做
我明白了
然后当我这样做时
我明白了
为什么 GHDL 不能“看到”osvvm
库?
vhdl - 在 GHDL/VHDL 中读取文件
我正在阅读 vhdl 中的文本文件。这方面有很多例子,但我很好奇为什么这个最小的展示示例在 GHDL 中不起作用。它在 ModelSim (by Mentor)中工作。
- 这是因为 GHDL 中缺少功能吗?(我在 docs/github 问题中没有找到任何内容)
- 这是因为我在不知道的情况下使用了错误的标准吗?
我得到的输出是:
这意味着,没有文件/无法打开,但文件存在并具有正确的访问权限(在 Modelsim 中得到证明)。我也用完整的文件名试过这个。
我在 Linux 上使用带有这些标志的 GHDL 0.37:
--ieee=synopsys --std=08
如果
被替换为
和
被删除它在 GHDL 中工作。
但是,我仍然不知道为什么以前的版本不起作用。