2014-10-30 46 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是圖靈完備。