我目前正在为我的暑期项目学习MyHDL。
我在掌握yield语句的功能时遇到了问题。尽管MyHDL是基于python的,但它以一种特殊的方式使用了yield语句。
相同的链接是:
http://www.myhdl.org/doc/current/manual/reference.html#myhdl.always

它指出:
MyHDL生成器是带有专用yield语句的标准Python生成器。在硬件描述语言中,等效语句称为敏感度列表。 MyHDL生成器中yield语句的一般格式为:
yield子句[,子句...]
当生成器执行yield语句时,其执行将在此时暂停。同时,每个子句都是触发对象,它定义了应恢复生成器的条件。但是,每次调用yield语句时,无论子句有多少,生成器都将仅恢复一次。这发生在发生的第一个触发器上。

我无法理解。有人可以用简单的话解释一下吗?还是将我重定向到其他来源?

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

问候

最佳答案

首先,请记住:MyHDL实现严格是纯Python。从这种意义上说,MyHDL和Python中的yield语句之间没有“差异”。

MyHDL实际上是将Python用作HDL的一种方式。在某种程度上,这是通过在称为myhdl的纯Python包中实现一些特定于硬件设计的对象来完成的。例如,有一个myhdl.Simulation对象,该对象以适合硬件仿真的方式运行生成器。

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

09-20 10:40