问题标签 [myhdl]
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.
myhdl - 无法使用 EDAPlayground 编译器显示模拟
我已经尝试了 EDAPlayground.com 上 myHDL 手册中的以下代码,但它没有为我打印任何内容。谁能告诉我为什么?以及如何解决这个问题?
我在网站上的配置在此处概述。
测试台+设计:仅 Python 方法:MyHDL 0.8
从随机导入 randrange 从 myhdl 导入 *
python - 在同步器上运行测试台时出现 AlwaysError
我在运行测试平台以及基于两个现有 D-FF 构建的同步器时遇到了这个错误。
我的测试平台概述如下
我的同步器编码如下。
FF原型编码如下。
测试平台确实可以与我之前编写的类似测试平台一起工作(稍作修改),但是当将两个模块组合在一起时它不起作用。请说清楚。谢谢你。
python - myhdl 中的模块实例化
我目前正在研究 myHdl 以查看它是否值得使用。但是,我遇到了关于模块实例化的问题。我有两个文件,一个是模块,一个是测试台。在测试台中,我按照他们在网站上的示例实例化了模块: http ://www.myhdl.org/examples/flipflops.html
具体的实例化是这一行:dff_inst = dff(q, d, clk)
但是,当我尝试运行测试平台时出现错误:
我认为这与我有两个单独的文件这一事实有关,所以我的猜测是 python 没有找到 dff 模块(因为它在一个单独的文件中)。我尝试添加import dff
一行,但这只是给了我一个'module' object is not callable
类型错误,这是有道理的。
查看文档,他们没有完整的 .py 文件,所以我不确定他们如何将这些测试台与模块链接起来。他们特别提到了层次系统并能够实例化其他模块,但我似乎无法让它工作。
根据我从文档中了解到的情况,看起来他们只是在同一个文件中编写测试平台和模块。但是,据我了解,它们似乎暗示您可以导入模块,但我无法弄清楚这是如何完成的。我忽略了一些简单的事情吗?
python - myhdl 中的 yield 语句
我的 myhdl 环境中有以下代码:
上面的代码不起作用,但是当我用以下代码替换它时它起作用:
我对此感到困惑,如果有人能解释为什么函数定义中的产量不起作用?
python - MyHDL:此上下文不支持对象类型
我正在尝试将此代码转换为 Verilog:
但是,我收到以下错误:
在函数内部移动变量qwe
会起作用,但我需要在外部使用这些变量,因为我需要在另一个模块中访问这些“常量”。
谁能解释为什么我得到这个错误,我怎样才能让它工作?
谢谢。
byte - 将多个引脚关联到一个变量的 myhdl 约束
我将使用 iCE40HX8K
给定评估板约束文件
将所有 8 个 LED 捆绑到一个变量中的最佳方法是什么
在向 LED 写入寄存器时,我不得不求助于这个
我正在生成这样的verilog ...(我在这里确实有来自单个信号的单个切片位,但它似乎会导致问题 - 即约束中的 LED3 不分配给任何东西)
已经够糟糕了,但它会因为并行地址和数据总线而变得笨拙......
我注意到在生成的verilog LED1-8 是这样指定的
在 always 子句之前和 always 里面
虽然所有这些都可以编译(硬件应该明天到货!)并且它可能(?)甚至可以工作......我相信它可以做得更好!
我很乐意使用位操作将 LED 一起作为单个字节处理......
python - 如何使 MyHDL 在过程中生成具有任意宽度的变量?
我想做一个列表中的信号总和,自然我使用了变量和 for(就像我在 VHDL 中一样):
问题是这将使用整数(在 VHDL 中)作为 sum 变量,这在 sum 的宽度超过 32 位时没有多大用处。
所以我试着做这样的事情:
我收到以下错误(在转换期间):
我不明白如何解决。我猜它以整数形式获得 intbv 的值,因此是不同的类型。
感谢您的任何建议
python - 动态实例化:如何在 myHDL 中动态连接接口
我正在尝试使用 pySerial 使用myHDL 1.0dev创建一个 python 库,用于在 PC 和 FPGA 之间动态创建 UART 接口
它采用数据类型及其属性的名称,并实例化一个 RAM 块,并允许访问 PC 上的读/写命令。但是,我遇到了动态连接 RAM 的问题。
对于一个最小的工作示例,我有这两个类。
UartBus 用于容纳许多 RamBus。现在我将尝试将它们与arbiter
块动态连接。
如果我用这段代码转换它,我得到一个不正确的转换
这是不正确的verilog。
并且两条线同名!在 @always_comb 中使用字典不起作用,因为到目前为止,任何版本的 myHDL 都不支持字典进行转换。如何正确实现动态布线?
python - MyHDL VHDL转换:没有索引值可以属于空索引范围
对于我实现并成功转换为 VHDL 的算法,我在“顶级 VHDL 设计的静态详细说明”期间收到此错误:
没有索引值可以属于空索引范围
我将代码归结为基本部分(您可能会认出 Cordic 处理器)。
有趣的部分是
d[x,y,z]
当转换为 VHDL 时,它会为数组吐出类似的内容:
这最终会导致错误,因为数组不能是 from 0
to -1-1
。为什么会发生这种情况,我做错了什么?
verilog - 从 MyHDL 生成的 Verilog 代码中缺少输出端口
我正在尝试从以下 MyHDL 模块生成一个 verilog 模块:
顶部.py:
和,
计数器.py:
但是,在生成文件的模块定义中,(第 1-3 行)
顶部.v:
leds[7:0]
缺失。即使这些 LED 未使用,我也需要将它们用于我的合成器,以将它们分配给开发板上的正确引脚。为什么 MyHDL 省略了它们?我怎样才能让它包括它们?