问题标签 [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.
git - ghdl 安装(tgingold):gnatmake 未找到但存在:usr/local/gnat/bin/gnatmake
MacOs 用户:Sierra
Vhdl 用户也是。
我安装了 ada-gpl_2017:好的(用 .bash_profile 编写的路径)
我通过 tgingold 的 git 安装了 ghdl 并返回一个奇怪的错误:
我做了:
最后一步返回以下错误:
但它存在于/usr/local/gnat/bin/gnatmake
. 你能帮我解决这个错误吗?
output - (VHDL)vhdl 实体中的输出问题
我对始终发出的 vhdl 实体的输出有疑问U
。我查看了各种论坛,但找不到解决方案。
该项目是一个 5 层的电梯,必须等待 5 秒才能关上门,10 秒才能到达下一个到达目标的飞机。使用 Logisim (v 2.13.22) 和 ghdl (v 0.29.1)。
有谁知道问题可能是什么?提前致谢
这是我制作的vhdl代码。
vhdl - 为什么内部组件没有被执行
因此,我在 VHDL 中创建了组件的分层设计。目前的顶级实体如下。
我正在使用这个测试平台对其进行测试
但就我所见,内部组件(比较器和多路复用器)没有被“执行”,结果端口永远不会改变。
所有组件都将其所有 IN 端口作为其进程的触发器。
我已经阅读了一些关于这个的内容,发现组件不能在进程内执行,所以当我这样做时:exp_1 <= exp_1_in; exp_2 <= exp_2_in; 我实际上并没有触发组件。
但是,我看到了一个与我在这里尝试的非常相似的示例。 https://www.altera.com/support/support-resources/design-examples/design-software/vhdl/v_hier.html
我不知道我的问题在哪里。我已经单独测试了每个组件,它们都可以工作。
编辑:
我正在使用ghdl -a分析每个文件然后使用ghdl -e exp_equalizer_tb 从测试台构建可执行文件 最后,我正在运行可执行文件./exp_equalizer
我制作了一个脚本,它对我项目中的每个组件都执行相同的操作,并且我为所有这些组件提供了带有断言和报告的测试台,它们都工作正常。在这个组件中我没有得到预期的结果。
vhdl - 在 vhdl 中返回不受约束的数组
在 vhdl 中返回无约束向量的最佳方法是什么?
在这种情况下,我得到的字符串文字不能是类型转换操作数,所以它不起作用。信号选择器是通用的,因此它不必是可合成的。
vhdl - std_logic_vector VHDL 的除数
我尝试std_logic_vector
用语言实现一个除数VHDL
。在我实现它之后,我必须使用 GHDL 但遇到了这个错误:
它对应于:
我的代码是:
测试台:
我使用的2007
是 GHDL 版本,我无法更新,我的老师要我使用这个版本。
有人可以帮我处理这段代码吗?
python - cocotb 中带有 generate 语句的不可用模块名称
我使用 cocotb v1.0 和 ghdl 0.35-dev(llvm 和 gcc 后端)。
顶层包含一个简单的 for generate 语句:
我尝试使用“dut.gen_pe[1]”访问我的 cocotb 测试台中第一个生成的模块。它产生错误:
在遍历 dut 时,它会从 generate 语句中发现以下子模块:
不幸的是,无法使用“dut.(1)”访问它们,因为它不是有效的 python 语法。
接下来我尝试从 cocotb/tests/test_cases/test_array 执行测试数组测试用例:
几乎所有的测试都失败了:
test_gen_loop 的输出是:
这与我设计中的错误相似。所以我猜这是模块命名的问题。
知道如何获取有效的模块名称或完全修复错误吗?
编辑:最小的例子
文件夹:/home/Programme/cocotb/examples/generate
/home/Programme/cocotb/examples/generate/hdl/top.vhd
:
/home/Programme/cocotb/examples/generate/tests/top_cocotb.py
:
/home/Programme/cocotb/examples/generate/tests/Makefile
:
执行 with 后make
,gpi 模块名称(1) ... (4)
而不是gen_pe(1) ... gen_pe(4)
打印到控制台。
更新:
gpi 模块名称在最新版本的 ghdl 中是固定的。但是 cocotb 测试数组测试用例仍然失败。
vhdl - ghdl 将 vhdl 编译成什么?
ghdl 是否将 vhdl 代码编译成逐个门实现的虚拟电路?如果那我可以看到它编译的电路吗?
macos - Mac OS 上的 GHDL 安装
我正在尝试在 MacOS (v0.35) 上安装最新版本的 GHDL。
我之前安装了 HomeBrew 安装的 0.29,但那个版本给我带来了一些问题,所以我需要升级。
我从发布网页下载了 tar 文件,发现它包含 3 个文件夹lib
:include
和bin
.
我刚刚将这些文件夹的内容复制到/usr/local/{folder}
(文件夹是bin
,include
或lib
),但我想我错过了一些东西,因为我收到一条错误消息,说 GHDL 找不到std
库。
我猜这是一个与路径相关的问题,因为如果我从下载文件夹运行 GHDL:
有用。
我究竟做错了什么?
types - 在VHDL中定义类型以保持两个整数之和的正确方法
我正在尝试编写一个非常简单的模块,其中包含两个整数输入和一个选择输入。When select is 0 output should be sum of inputs and when select is 1 output should be difference of them. 我将使用 GHDL 通过一个简单的测试平台来验证该模块。该模块不必是可合成的。
我的第一次尝试如下。
问题是 GHDL 给出了溢出错误,因为据我所知,两个整数的总和不能适合另一个整数。
如何定义具有足够范围以保持结果的类型?我的第一次尝试如下。但是在这种情况下,我应该为新类型定义“+”和“-”运算符。
由于所需的范围比整数更宽,我不能使用子类型定义。如果我能够定义一个子类型,我可以使用为整数定义的“+”和“-”运算符,而无需重新定义它们。
编辑1:
对于那些想知道测试台和确切错误的人,这里是使用 EMACS vhdl-mode 半自动生成的测试台。
这是GHDL的确切错误:
第 21 行对应于
在源文件中。
编辑2:
关于我的 GHDL:
vhdl - 在 VHDL 中使用来自不同包的类型
我想创建一个包含我可以在其他地方加载并在那里使用的类型的包。但我不让它工作。
就我而言,我有这样的事情:
类型.vhdl
tb_types.vhdl
我像这样分析和编译测试台ghdl
:
如果我将虚拟实体注释掉,一切都会按预期工作。断言没有触发,它报告“一切顺利”。
我在这里做错了什么?
我也试过没有.all
and 和types.fancy_vector_array
and types.number
。然后它说:no declaration for "types"
。