【问题标题】:Is VHDL Turing complete?VHDL图灵完备吗?
【发布时间】:2014-12-26 00:24:19
【问题描述】:

VHDL 图灵完备吗?我的理解是 VHDL 创建了一个寄存器机器,而没有任意 RAM 的寄存器机器不是图灵完备的。

这是准确的吗?对于寄存器机无法解决的问题,有没有标准的方法——比如在VHDL之外使用RAM,通过VHDL来管理?

【问题讨论】:

  • 您当然可以在 VHDL 中实现 RAM,首先。对于综合,大多数 FPGA 会将您的 RAM 映射到专用内存块中。它可能不是最便宜的记忆形式,但这是一个经济论点,而不是基本论点。
  • VHDL 具有动态内存分配,因此它与任何其他系统编程语言一样完整。

标签: programming-languages vhdl theory turing-complete


【解决方案1】:

显示图灵完整性的另一种方法是转换链:

  1. 图灵机图灵完成。
  2. 注册机可以模拟图灵机,反之亦然。
  3. 寄存器机器是现代处理器的抽象和简单模型
  4. 您可以使用 VHDL 描述处理器

所以VHDL已经完成了。

【讨论】:

  • 但是,你真的可以用 VHDL 模拟布局吗?我的意思是,假设一个电路的JPEG照片可以转换成VHDL,这是否意味着JPEG图灵完备?能够保存图灵完整的东西,但需要解释器并不能使容器图灵完整。
  • 光刻描述只是记录图灵机的另一种方式。用笔和纸执行寄存器和图灵机时,没有人要求纸和笔是图灵完整的。
  • 我想知道做算术的人是否图灵完备,而不是说笔和纸:-)
【解决方案2】:

主要有3个criteria for Turing Completeness:

  1. 序列。 做这件事,然后做那件事,然后做另一件事
  2. 选择。 如果那么某事
  3. 迭代(或递归)。 一遍又一遍地这样做,直到这个

对内存的要求不是它是无限的(这在现代技术中是不可能的,而且所有语言都会失败),而是它是无限的,或无限可扩展的:即。如果你用完了,你可以添加更多,然后再试一次。

所以是的,我认为 VHDL 肯定符合条件。它可以做所有这些事情。

【讨论】:

  • 你能给出一个代码示例来展示 VHDL 中的递归吗?
  • @SRobertJames:状态机很容易表现出递归,我认为没有人会争辩说我们不能用 VHDL 构建状态机。
  • @Bill - 状态机肯定不是图灵完备的。
猜你喜欢
  • 2015-08-23
  • 2011-05-22
  • 2017-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2017-01-11
相关资源
最近更新 更多