2014-10-30 62 views
3

VHDL图灵是否完整?我的理解是,VHDL创建一个注册机器,并且注册机器 - 没有任意RAM - 不是图灵完整的。VHDL图灵是否完整?

这是准确的吗?对于注册机器无法解决的问题,是否有标准方法 - 例如在VHDL之外使用RAM,并通过VHDL进行管理?

+1

你当然可以在VHDL中实现RAM,作为​​开始。对于综合来说,大多数FPGA将把你的RAM映射到专用存储器模块。它可能不是最便宜的记忆形式,但这是一个经济论证,而不是根本的。 – 2014-10-30 10:58:55

+1

VHDL具有动态内存分配,因此它与任何其他系统编程语言一样完整。 – 2014-10-30 15:38:27

回答

4

主要有3 criteria for Turing Completeness

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

对内存的要求是不在于它是无限的(这是不可能有现代化的技术,所有的语言会失败),但它是无界的,或无限可扩展:即。如果用完了,可以添加更多并重试。

所以是的,我认为VHDL肯定有资格。它可以做所有这些事情。

+0

你能给出一个代码示例显示VHDL中的递归吗? – SRobertJames 2014-10-30 21:26:57

+0

我找到了[一个有示例的线程](https://groups.google.com/d/topic/comp.lang.vhdl/6iriCKNutv8/discussion)。 – 2014-10-31 05:01:14

+0

@SRobertJames:状态机可以非常容易地呈现递归,我不认为有人会认为我们不能用VHDL构建状态机。 – 2014-10-31 13:39:25

5

另一种方式展现图灵完全是变革链:

  1. 图灵机是图灵完备。
  2. 图灵机可以通过注册机模拟,反之亦然。
  3. 注册机器是现代处理器的抽象和简单的模型
  4. 你可以描述的处理器与VHDL

所以VHDL是图灵完备。