标签: myhdl

Python ast包:遍历对象层次结构

以下是使用astsymtable 包的Python代码段.我试图解析代码并检查类型.但我不明白如何遍历对象以获取被引用的实际变量.

下面的代码实现了一个NodeVisitor,并且一个函数被呈现给编译器并由编译器和ast走了.正在分析的函数(eval_types)传递了几个对象.

下面是构成示例的代码块.我为每个块添加了一些注释.要运行代码,需要重新组装"块".

导入和用于解压缩代码块的函数.

import inspect
import ast
import symtable
from tokenize import generate_tokens, untokenize, INDENT
from cStringIO import StringIO

# _dedent borrowed from the myhdl package (www.myhdl.org)
def _dedent(s):
    """Dedent python code string."""

    result = [t[:2] for t in generate_tokens(StringIO(s).readline)]
    # set initial indent to 0 if any
    if result[0][0] == INDENT:
        result[0] = (INDENT, '')
    return untokenize(result)
Run Code Online (Sandbox Code Playgroud)

以下是节点访问者,它具有通用的未处理和名称访问者重载.

class NodeVisitor(ast.NodeVisitor):
    def __init__(self, SymbolTable):
        self.symtable = SymbolTable
        for child in SymbolTable.get_children():
            self.symtable = …
Run Code Online (Sandbox Code Playgroud)

python abstract-syntax-tree myhdl

11
推荐指数
1
解决办法
2687
查看次数

python和MyHDL中的yield语句之间的区别

我目前正在为夏季项目学习MyHDL.我有一个问题,掌握屈服声明的功能.尽管MyHDL基于python是正确的,但它以专门的方式使用其yield语句.相同的链接是:http: //www.myhdl.org/doc/current/manual/reference.html#myhdl.always

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

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

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

问候

python yield myhdl

6
推荐指数
1
解决办法
846
查看次数

更好的平台,可将软件转换为FPGA的VHDL/Verilog

我正在研究在FPGA上进行开发,但是用Python或Scala编写代码并将其转换为VHDL或Verilog会更容易.

我希望将许多传感器连接到设备上,随着数据的进入,计算速度非常快,因此可以在视频墙上显示,因此FPGA可以输入数十个传感器和几个视频控制器.壁.

这是用Scala编写的代码库.对于这个我很好奇,如果代码是用Java编写的,而Scala会影响它生成的内容.

http://simplifide.com/drupal6/

这是VHDL到VHDL转换器.

http://www.myhdl.org/doku.php

有了这些,我很好奇这些局限性.

我更喜欢简化,因为我在Scala比Python强,但似乎myhdl可能是一个更强大的平台,只是从一些基本的环顾四周.

更新:

FPGA的原因在于它可以很好地同时完成多个任务,因此当数据进入时,根据用户的需要,根据实验,可以很容易地将FPGA上的代码更改为能够适应需求.

因此,例如,如果办公楼的每层楼都有8 x 3个不同的气象传感器,那么就有温度,风速,气压传感器(每个传感器每个传感器有8个),并添加传感器来测试变形.墙壁,然后一个实时界面,同时读取这些并不断更新视觉显示可能会有所帮助.

这是一个组成的例子,但它可以解释为什么FPGA会有用,否则我需要许多不同的DSP,然后将它们送到计算机中进行可视化显示,而FPGA可以做得更快,因为它是硬件,具有较低的功率需求.

有两个开源库可以帮助使开发更容易,但我不确定哪个是用于将程序转换为VHDL/Verilog的更好的平台.

这只是一个例子.如果我想在FPGA上进行量子电路仿真,正如本文所述(http://www.cc.gatech.edu/computing/nano/documents/Radecka%20-%20FPGA%20Emulation%20of%20Quantum%20Circuits .pdf)然后,作为一个程序,这比手工构建一个大电路更容易.

python scala fpga vhdl myhdl

5
推荐指数
2
解决办法
4146
查看次数

标签 统计

myhdl ×3

python ×3

abstract-syntax-tree ×1

fpga ×1

scala ×1

vhdl ×1

yield ×1