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

vhdl - 波纹进位加法器的 vhdl 程序显示有关未绑定组件实例的警告

使用此架构我成功编译和分析。但是在详细说明时它显示

而且我的波形始终为零。我需要做什么??

0 投票
0 回答
395 浏览

vhdl - VHDL 仿真无法运行

我刚刚拿起了 VHDL 设计指南,我正在完成第一章的练习。我的 2 位多路复用器遇到了一个我不理解的问题。

我的多路复用器的代码:

我不知道为什么我需要“等待 1 ns;” 线。如果我将它移到“end if”行下方,则模拟将无法工作,并且我不会从 GHDL 获得我的 .vcd 输出。如果没有等待线,或者它位于错误的位置,我的 vcd 文件中就会出现关于开始时间和结束时间相同的错误。

我的流程中是否需要等待语句才能工作?

我的测试台代码如下:

0 投票
1 回答
205 浏览

concurrency - VHDL中带有向量的并发信号分配

我正在尝试使用 GHDL 编译此代码,但出现错误:'=>' is expected而不是'not'。我希望代码没有任何进程,也没有隐式进程。

0 投票
1 回答
321 浏览

vhdl - 使用 GHDL 使用 COE 文件模拟 Xilinx FIR 编译器

在我能找到的任何论坛中似乎都没有被问到,我也找不到如何使用 GHDL 文档来做到这一点。显然我没有足够的声誉来向 SuperUser 提出 GHDL 问题(他们没有标签),所以我必须在这里问。

我正在尝试模拟一个 DSP 内核,它包含几个自写的 vhdl 内核以及一些使用 GHDL 的 Xilinx coregen 内核。我不得不承认,我对 GHDL 相当陌生,但对 VHDL 并不陌生。我知道有问题的核心和测试平台的逻辑是合理的,因为它使用 ISim 模拟得很好。然而,该程序有其局限性,这就是我想尝试 GHDL 的原因。

但是,由于缺少过滤器文件,GHDL 似乎在模拟 Xilinx FIR 编译器时会退缩。

我正在使用下面的 Makefile 片段设置我的模拟环境

从导入语句中可以看出,我的源文件实际上位于不同的目录中,但这不会打扰 GHDL。

直到最后一条语句,一切运行良好。但是,在运行最后一个命令时,我收到一个错误:

带有未打开文件的 endfile

来自:xilinxcorelib.fir_compiler_v6_3(behavioral).fn_read_mif_file at fir_compiler_v6_3.vhd:1648

ghdl:error: 细化过程中的错误

我认为问题在于我的 FIR 编译器是使用 Xilinx FIR 编译器生成的,并使用 COE 文件来指定滤波器系数。发生错误的行实际上打开了指定滤波器系数的文件。在 coregen 生成的 VHDL 文件中,它在此处指定

我现在的问题是:如何让 GHDL 查找文件。我已经将它复制到运行运行命令的文件夹中。据我所知,我无法导入非 vhdl 文件以供 GHDL 识别。那么如何使用 GHDL 模拟 FIR 编译器生成的滤波器呢?

我希望有人知道如何做到这一点。

提前致谢!

0 投票
2 回答
827 浏览

vhdl - 如何在常量的case语句中设置分支?错误:选择必须是本地静态表达式

Verilog 允许将 case 语句的分支定义为不同文件中的常量。例子:

我怎样才能在 VHDL 中做同样的事情?我想在一个包中定义我的案例常量,并将这些常量拉入当前架构并使用这些常量来定义案例语句的分支。工作示例:

哪个工作正常...

然而,当我在我的 VHDL 代码中尝试它时,我得到一个奇怪的错误:

这是给出此错误的代码:

0 投票
0 回答
740 浏览

memory - VHDL 运行时:无效的内存访问(悬空访问或堆栈大小太小)

运行测试台时出现奇怪的错误,我以前从未见过。我正在尝试用 4 个寄存器模拟一个 8 位计算器。该计算器有 8 位指令,用于加、减、相等分支、立即加载和打印到监视器。我已经检查以确保我没有处于任何无限循环中。我在网上进行了研究,似乎没有任何具体原因导致我出现此错误。

我对循环、内存泄漏进行了三次检查,还尝试增加堆栈帧。到目前为止都没有成功。使用命令 ghdl -a、-e 和 -r 来分析、编译和运行。

'''

无效的内存访问(悬空访问或堆栈太小)

0 投票
0 回答
329 浏览

vhdl - GHDL:文件 std_logic_1164.v93 已更改,必须重新分析

在使用 ghdl vhdl 模拟器进行编译时,有什么想法会导致此错误吗?

common_pkg.vhd 是:

这是ghdl版本:

0 投票
1 回答
461 浏览

vhdl - 使用 GHDL 仿真器编译整个 Xilinx ISE unisims 和 XilinxCoreLib 库(减去安全 ip)

我很好奇是否有人有幸为 GHDL 模拟器编译了整个 Xilinx ISE unisims 库?我试图只为 unisims 编译包文件,但它给了我一个错误。

我想知道它是否会通过注释掉 VHDL 代码中不受支持的部分来完全编译……或者还有其他事情需要完成,例如编译不同的重要库或使用不同的版本 --std。因为我知道我可以取出一个 unisims 组件并使用 ghdl 进行编译……只是想知道如何完成其​​余 90% 的组件。

0 投票
1 回答
449 浏览

vhdl - VHDL - GHDL 用较小的位长度初始化 std_logic_vector

我有一个signal dataIn : std_logic_vector ( 15 downto 0);

例如,我想提供一个小于 16 位的输入dataIn <= x"000a",这些位占据最高有效位,其余位为零。在verilog中你可以很容易地做到这一点,但在VHDL中你会得到错误:

“字符串长度与定义的匿名整数子类型不匹配...”。

我知道如果您使用16x"bit_string"可以解决问题,但这仅适用于 VHDL-2008,而 ghdl 尚不支持 VHDL-2008。

IEEE Std 1076-2002 有什么方法吗?

0 投票
3 回答
572 浏览

vhdl - GHDL模拟器不支持没有错误的vhdl属性?

我编写了一些 vivado RTL,然后在实体的端口中添加了一些 vhdl 属性,以定义到 Xilinx Vivado 工具的接口,如下所示:

在那里,我尝试使用 GHDL 编译上述 rtl,如下所示:

GHDL 产生以下错误:

但是,当我用 modelsim 编译它时,它不会产生错误。

有谁知道如何在 GHDL 中解决这个问题,以便我可以添加这些属性,模拟器会忽略它们而不产生错误?