我目前正在为我的暑期项目学习 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/