- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 myhdl 环境中有以下代码:
def rst(self):
rst.next=rst.active
self.wait_clks(5)
def wait_clks(self, cycles):
for _ in range(cycles):
yield self.clk.posedge
上面的代码不起作用,但是当我将其替换为以下代码时,它可以工作:
def rst(self):
rst.next=rst.active
for _ in range(5):
yield self.clk.posedge
我对此感到困惑,是否有人可以解释为什么函数定义中的yield不起作用?
最佳答案
当您只需调用 generator function
(在其主体中有yield语句的一个),你得到一个生成器对象,它甚至没有开始遍历该函数,它只是在你开始迭代返回的生成器对象时才开始(或调用next()
它)。示例 -
>>> def gen1():
... print("Starting")
... for i in range(10):
... yield i
...
>>> g = gen1()
>>> g
<generator object gen1 at 0x00273E68>
正如您在上面看到的,它并没有开始遍历该函数,它只是返回了生成器对象。要浏览该函数,您需要迭代 g
或调用next()
在上面。示例-
>>> g.next()
Starting
0
>>> for i in g:
... print i
...
1
2
.
.
在第一种情况下,也会发生类似的情况,您只是调用生成器函数,该函数返回生成器对象,然后丢弃结果。最有可能的是,来自任何地方rst()
被调用时,它期望返回一个生成器对象。在这种情况下,您的第二种方法是最好的。
但是如果你真的想在一个单独的函数中创建它(并且我认为没有必要在一个单独的方法中创建它),你可以直接返回 self.wait_clks(5)
的结果从 rst(self)
返回。示例-
def rst(self):
rst.next=reset.active
return self.wait_clks(5)
显示此方法有效的示例 -
>>> def f():
... return gen1()
...
>>> for i in f():
... print(i)
...
Starting
0
1
2
.
.
关于python - myhdl中的yield语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208966/
在 VHDL 中,我经常使用记录将相关信号分组为可以作为单个对象传递的东西,例如在港口 map 中。这样做的 MyHDL 方式是什么? 最佳答案 接口(interface)在 0.9-dev 和 很简
我目前正在研究 myHdl,看它是否值得使用。但是,我遇到了有关模块实例化的问题。我有两个文件,一个是模块,一个是测试平台。在测试台内,我按照网站上的示例实例化了模块: http://www.myhd
我正在尝试在 Windows 10 上使用 Python2 设置 myHDL,以便使用 Python 作为源代码来处理 VHDL/Verilog 测试平台。可以找到相应的说明here . 我已经在我的
我正在尝试学习 MyHDL,为此我尝试创建一个非常简单的人工神经元,稍后可以在简单的人工神经网络中使用它。首先,我设计了一个只能处理单个输入和权重信号并返回输出信号的人工神经元。 @block def
Here is an example我从 myHDL manual 复制的。在我的代码中,生成器 FSM() 永远不会被调用,因此状态始终为“SEARCH”。 我不明白为什么生成器没有被调用。 编辑:
我正在使用 MyHDL 包进行硬件仿真,但我想围绕它放置一个 GUI,以便用户可以交互地更改信号并查看其他信号更新。 问题是,MyHDL使用模拟器如下 模拟器有几个发电机 每个生成器都可以监听信号变化
我正在尝试创建一个Python库,用于使用myHDL 1.0dev使用pySerial在PC和FPGA之间动态创建UART接口(interface) 它获取数据类型及其属性的名称,并实例化 RAM b
编辑:只有当我从 iPython notebook 内部运行代码时才会发生这种情况。 。它在常规 .py 文件中运行良好 我刚刚开始学习 myHDL,但使用 @instance 或 @always_c
对于我实现并成功转换为 VHDL 的算法,我在“顶级 VHDL 设计的静态阐述”期间收到此错误: no index value can belong to null index range 我将代码简
我是一名优秀的程序员,十分优秀!