问题标签 [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 投票
2 回答
1449 浏览

vhdl - GHDL的VCD输出中缺少信号

我正在 VHDL 书中尝试一个简单的案例问题。从源代码可以理解,它根据输入范围设置输出值。x但是,当我使用 GHDL 运行测试平台时,我无法观察到我的输入。

这是因为x是一种character类型吗?我应该在 GHDL 问题页面(https://github.com/ghdl/ghdl/issues)上提问吗?

源代码(q4_case.vhd):

测试台(q4_case_tb.vhd):

编译并运行命令:

版本信息:

VCD 输出文件的开头如下所示。如您所见,x未处理,我无法x通过 GTKWave 查看。

VCD部分:

0 投票
1 回答
1738 浏览

arrays - 如何在 VHDL 中初始化长度为 1 的数组

我拼命尝试在 VHDL 中分配一个长度为 1 的数组的常量,但它似乎不起作用(使用 GHDL),它抱怨我无法分配数组内部类型的文字,进入数组。

当我尝试用 GHDL 编译它时,我收到错误消息test.vhdl:8:46:error: can't match integer literal with type array type "integer_array"

如果我length改为2虽然并(1, 2)用作文字,它会完美运行。

那么如何初始化一个长度为 1 的数组呢?

0 投票
2 回答
868 浏览

vhdl - 来自 Synopsys 的 GHDL 中的 IEEE:作为选项传递,但未正确考虑

我正在使用 GHDL 模拟器,但我无法弄清楚如何使用非 IEEE 包,如std_logic_textio(显然来自 Synopsys),对各种解析很有用(在我的情况下是线程)。

我已经仔细编译了我的代码,并带有一个选项来表明我的 ieee 是 Synopsys 版本。

但是,我仍然收到一个错误:

我在这里使用的 GHDL 版本:

如何正确编译我的代码?

更新:这里有一些关于我的 GHDL 安装的信息,来自 github 档案:

  • linux mint 18.2 索尼娅
  • which ghdl返回 /usr/local/bin/ghdl
  • locate std_logic_textio返回
  • /usr/local/lib/ghdl/src/ieee2008/std_logic_textio.vhdl
  • /usr/local/lib/ghdl/src/synopsys/std_logic_textio.vhdl

更新:我还用 llvm 后端重新编译了 GHDL,得到了相同的结果。

0 投票
1 回答
795 浏览

vhdl - GHDL中标识符中的错误字符

我正在尝试在 Ubuntu 17.10 中用 GHDL 编译以下组件。这是组件的代码:

我在详细说明组件时收到此错误消息:

我使用以下标志来使命令在我的 64 位机器上工作,我不知道它们是否完全正常:

0 投票
1 回答
1195 浏览

linker - 链接时如何在MinGW中将DLL合并到EXE中

我正在我的机器上编译GHDL,或者使用:

  • AdaCore GNAT GPL 2017
    这是用于 Windows 的独立 Ada 编译器,可生成单个可执行文件;
    或与
  • MSYS2 / MinGW64 (GCC + GNAT + CLANG, CLANG++, ...)
    这是适用于 Windows 的 GCC 编译器工具链。它会生成一个可执行文件,该可执行文件需要安装目录中来自 MinGW 的少量 DLL。

是否可以添加链接器标志以将 DLL 集成到可执行文件中以减少传送文件的数量?

需要设置哪些标志才能将所需的依赖项合并到可执行文件中?


在这个GitHub 问题中,我列出了带有 LLVM 后端的 GHDL 的所有 DLL 依赖项:

  • libgcc_s_seh-1.dll
  • libstdc++-6.dll
  • libwinpthread-1.dll
  • zlib1.dll
0 投票
0 回答
851 浏览

vhdl - vhdl 指令要求:非 64 位模式

我在 mac 上使用 ghdl(vhdl 的开源编译器)。我写了这个简单的半加法器组件:

当我想用下面的命令分析 ha.vhdl 组件(使用 -a 开关)时,我收到很多以下错误:

命令: ghdl -a ha.vhdl

错误:

ha.s:90:2: error: instruction requires: Not 64-bit mode

pushl %ebp

ha.s:103:2: error: instruction requires: Not 64-bit mode

pushl %edx

. . .

0 投票
2 回答
1158 浏览

vhdl - VHDL/GHDL Binary 32-bit Write Overflow When High Bit Set

I have a VHDL testbench where I would like to write 32-bit binary words to a file for testing. Below is a minimal, complete, verifiable example.

When executed with GHDL (commands below) an overflow is generated at the indicated line. If the line is commented out execution completes successfully and writes the file. The overflow occurs anytime the high bit is set.

I run the following GHDL commands to run the VHDL code (save as u32_file_write.vhd):

With the line commented out, the corrected results are written to the file:

If the line is uncommented, an overflow is generated:

As noted above, the write will work with any value in the first 31-bits. The write will overflow with any value where the 32-bit is set.

The underlying problem is integer'high is 2^31-1. See:

The accepted answer here states to use an intermediate 'text' format a text processing language. Another answer shows a solution for reading using 'pos but that doesn't help me write.

Is there a simple rework/workaround that will allow me to write all 32-bits of data to a binary file?

0 投票
0 回答
272 浏览

terminal - 在 SRFF 终端的测试台中显示错误“; 应该是标识符而不是标识符

我在这个 SR FF 的测试平台中发现了这个错误。
当我在终端中使用 GHDL 编译它时,它显示错误

; 预计而不是 ''

我只是一个初学者,所以我找不到错误。
谁能帮帮我吗?

0 投票
1 回答
1912 浏览

syntax - 使用 Case 语句的 JK 触发器的 VHDL 程序

当我使用 ghdl 编译这个程序时,它显示错误“何时”是预期的,而不是“不是”。请帮我找出这段代码的问题。

0 投票
1 回答
671 浏览

vhdl - 使用 VHDL 的 4 位 ALU 显示错误:运算符“+”(“-”、“*”和“/”)没有函数声明

当我使用 ghdl 编译此代码时,它会产生错误。

ghdl -a alu.vhdl
alu.vhdl:33:19:error: no function declarations for operator "+"
alu.vhdl:35:19:error: no function declarations for operator "-"
alu.vhdl:37:29:错误:运算符“*”没有函数声明
alu.vhdl:39:28:错误:运算符“/”没有函数声明
alu.vhdl:78:17:错误:运算符“+”没有函数声明

使用无符号算术时,如何使这些运算符可用?