问题标签 [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 回答
684 浏览

vhdl - 如何重新编译 GHDL 源代码

请给我在源代码中编辑特定文件后如何重新编译GHDL源代码的步骤?提前致谢。问候拉古

0 投票
1 回答
870 浏览

vhdl - ghdl 浮点异常 8

我正在尝试编写具有 32 位地址的 SRAM,并启用字节通道写入。但是,当我尝试访问(读取或写入)大于 x1F 的地址时,在使用 GHDL 编译时出现“浮点异常 8”。以下是一些代码片段:

因此,当我在测试台中将地址设置为 x0000_001F 或更低时,它会编译,但当我输入 x0000_0020 或更高时则不会。

0 投票
2 回答
1236 浏览

vhdl - 如果进程中的语句数是偶数,则适用于 Windows 的 GHDL 0.29 挂起

我正在为 Windows 使用 GHDL 0.29。

以下程序打印“Hello world!”

以下程序挂起并且不打印任何内容。

以下程序输出两个断言,然后是“Hello world!” 信息。

我尝试增加断言的数量,我发现当我有奇数个断言时,模拟会挂起。甚至它们位于何处都无关紧要。以下挂起:

以下将所有内容打印到“反建制主义”断言:

编辑

这个问题更普遍,并且似乎与进程中的语句数为奇数或偶数有关。以下打印“Hello world!Hello moon!” 反复:

虽然以下内容不打印任何内容并挂起:

编辑(这可能会为您节省一些时间)

上面描述的奇怪行为在 Linux 下不会发生。显然,两个 GHDL 版本之一存在严重缺陷,我强烈怀疑它是 Windows 版本。我会提交错误报告。我仍然对为什么行为不同感兴趣。

编辑(我也尝试使用 0.25 版)

使用适用于 Windows 的 0.25 版时,我收到此错误:

ghdl.exe 是与 GTKWave 捆绑包一起打包的 ( https://stackoverflow.com/a/16629872/415727 )。

0 投票
1 回答
1017 浏览

windows - ghdl 不生成二进制文件(Windows)

几个月以来,我一直在使用 ghdl 进行学习。

现在我被迫使用 windows 并尝试在那里使用 ghdl 和 gtkwave。

我的问题是:安装 ghdl 后,我尝试编译一些代码。和:

我在linux中使用的相同。

但除了 work-obj93.cf 之外,它不会产生 ant 输出

如果我列出

一切似乎都很好。所有执行都没有任何错误消息,但我没有得到二进制文件或任何东西。

0 投票
4 回答
19793 浏览

macos - 如何使用 ghdl 在 Mac 上编译和运行 VHDL 程序?

我刚刚写了一个简单的VHDL程序。我将文件保存为 .vhd 文件。然后我编译它

然后构建和可执行文件

最后尝试运行它

发生的事情是我现在有一个可见的文件和另外两个文件,work-obj93.cf即不知何故不可见。...

有人能告诉我如何在我的 Mac 上测试 vhdl 程序吗?也许与 GTKWave 结合使用。

0 投票
2 回答
2721 浏览

vhdl - GHDL 挂起正在运行的测试平台

在用 VHDL 测试一个简单的生命游戏实现时,空测试台的 GHDL 模拟在打印出“测试结束”消息后以 100% 的 CPU 使用率挂起。

这是代码:

和测试台:

0 投票
1 回答
442 浏览

vhdl - 如何使用 GHDL 运行具有特定架构的 VHDL 测试平台?

我们知道,对于单个实体 E,我们可以关联多个架构 A(i)。

测试平台也是如此,它们是简单的实体架构。但是,使用 GHDL,我不知道如何运行这样一个特定的测试平台,比如架构 A(arch)。

回想一下,这是一个简单的脚本,用于为名为“dut”的设计运行测试平台“tb”:

这里没有给出 tb 的架构名称。我怎样才能准确地说我想运行架构说“arch42”?

0 投票
2 回答
3085 浏览

vhdl - 以 std_logic_vector 形式提供的数组地址

我正在尝试构建一个 ROM,它具有a : in std_logic_vector(5 downto 0)访问地址的声明。我的问题是我不知道如何使用 std_logic_vector 访问 ROM 数组,我应该使用强制转换为整数还是还能做什么?

我的代码:

使用如图所示的此代码,我收到以下错误:

0 投票
1 回答
5364 浏览

vhdl - VHDL 包“IEEE.std_logic_arith”是否随 ghdl 一起提供?

我试图用 GHDL 模拟 Xilinx GTXE2 收发器。在 GTXE2_CHANNEL.vhd 中,我收到一个错误,即在库“ieee”中找不到“std_logic_arith”。

首先,这是我的机器设置:

所以问题1:这个包是否包含在GHDL中?

我试图将 VHDL 标准更改为 VHDL-2008 --std=08,但是 ghdl 无法识别此选项,因此我目前正在使用 VHDL-2002 进行编译。但什么都没有改变。

我还尝试从 Xilinx 的 vhdl 源文件夹中手动包含 IEEE 源C:\Xilinx\14.7\ISE_DS \ISE\vhdl\src\ieee。但是,当我编译std_logic_arith时,它会抱怨缺少std_logic_1164,这通常是可以找到的。除此之外,std_logic_1164中的 FOREIGN 属性也存在问题。

所以这是我要编译的文件列表/编译顺序(Xilinx' *.prj-files 的修改版本):

该列表被翻译成 GHDL 命令,这些命令在临时目录中执行:

最后是ieee.std_logic_1164中的 FOREIGN 属性错误:

问题2:如何编译ieee.std_logic_1164?

每个安装了 GHDL 环境的人都可以测试这个示例。赛灵思库不需要 my_config_KC705.vhdl。


这样做的目的是什么?

  • iSim 模拟非常慢 -> 大约 15 ns sim-time 在 1 秒 cpu-time 中计算;100 us -> 40 分钟的等待
  • iSim 使用大约 2.6 GiB 的主存储器 - 可能是 GHDL 更节省
  • xSim 对我们的 VHDL 库有些抱怨 - 所以 iSim 目前是选项 #1
  • 我之前用 Xilinx 原语测试过 GHDL 并且它工作正常,所以下一个挑战是模拟一个 secureip 组件 :)
  • 如果我有足够的时间,我也会尝试 QuestaSim
0 投票
1 回答
1165 浏览

arrays - Shouldn't these types be closely related?

I am trying to analyze the following file which is supposed to be VHDL-2008 compatible.

This is supposed to be an experiment about closely related types. According to the LRM, there are two cases of closely related types:

— Abstract numeric types—Any abstract numeric type is closely related to any other abstract numeric type. — Array types—Two array types are closely related if and only if the types have the same dimensionality and the element types are closely related

I understand that reals and integers are closely related; type conversion (aka type casting) between them works ok. Then why doesn't it work for the above array types?

GHDL gives the following error:

And Modelsim Altera 10.1e (with -2008 switch) is no better:

Just to be thorough, I tried to do the same operation one element at a time:

And it works perfectly. Any ideas?