python - python和MyHDL中yield语句的区别

标签 python yield myhdl

我目前正在为我的暑期项目学习 MyHDL。 我在理解其中的 yield 语句的功能时遇到了问题。尽管 MyHDL 确实基于 Python,但它以专门的方式使用其 yield 语句。 相同的链接是: http://www.myhdl.org/doc/current/manual/reference.html#myhdl.always

它指出: MyHDL 生成器是具有专门 yield 语句的标准 Python 生成器。在硬件描述语言中,等效语句称为敏感性列表。 MyHDL 生成器中 yield 语句的一般格式为: yield 子句 [, 子句 ...] 当生成器执行 yield 语句时,它的执行会在此时暂停。同时,每个子句都是一个触发器对象,它定义了生成器应该恢复的条件。但是,每次调用 yield 语句时,生成器只恢复一次,而不 pipe 句的数量。这发生在第一次触发时。

我无法理解。有人可以用简单的话解释一下吗?或者将我重定向到另一个来源?

如果您能提供帮助,我将不胜感激。 谢谢!

问候

最佳答案

首先也是最重要的:记住 MyHDL 实现是严格的纯 Python。从这个意义上说,MyHDL 和 Python 中的 yield 语句之间没有“区别”。

MyHDL 确实是一种将 Python 用作 HDL 的方法。部分地,这是通过在名为 myhdl 的纯 Python 包中实现一些硬件设计特定对象来完成的。例如,有一个 myhdl.Simulation 对象以适合硬件模拟的方式运行生成器。

另一部分是以特定于硬件的方式简单地解释某些 Python 功能。例如,硬件模块被建模为返回生成器的 Python 函数。另一个例子是“yield”语句被解释为“等待”功能。

关于python - python和MyHDL中yield语句的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044930/

相关文章:

rust - Rust 中是否有一个特性允许在没有协程等实验性功能的情况下按组进行折叠?

scala - 继续和理解 - 什么是不兼容?

生成器表达式的 Python PEP 484 类型注释

MyHDL:用户定义代码中的库使用子句

Python ast 包 : traversing object hierarchies

python - 代码审查 : Python list concatenation elements to string

python - 将 Sage 矩阵赋值给 R 中的变量

Python网络X : edges color in a weighted graph

java - 在 Play 框架和 Django 之间共享 session

myhdl - 将内部信号连接到 MyHDL 模块中的输出端口