2011-03-29 33 views
3

我是VHDL的新手,無法弄清楚如何調試VHDL代碼。調試VHDL:如何?

是否有任何軟件可以讓我洞察我的VHDL實體的內部信號隨着時間的推移或類似的東西?

請幫忙。

+0

對操作系統沒有限制,我可以訪問Windows和Linux – DarkKnight 2011-03-29 06:13:53

回答

6

正如其他職位已經指出,你可能需要simulatorGHDL。然而,調試你的模擬,有幾個不同的方法:

  • 經典報表打印 - 只是拌入writeline(output,[...])在你的程序代碼。 See this hello world example.如果你剛開始,那麼添加打印語句將是非常寶貴的。對於我所做的大部分模擬調試(這是我工作的一部分),我幾乎完成了基於我們在設計和testbench中構建的打印語句的所有調試。它只用於最終調試,或者用於更難以處理的問題,我使用下一個調試方法。

  • 「傾銷」模擬(for GHDL see this pagethis one)。這是您的設計(或您的設計的一個子集)的循環跟蹤。就好像您在設計中的每一根導線上連接logic analyzer。所有你可能想要的關於你的設計的信息,但在一個非常低的水平 - 信號水平。使用這種方法:

    1. 創建一個模擬「轉儲」。這種轉儲的基本格式是Value Change Dump or VCD。無論您使用哪種模擬器,都需要閱讀有關如何創建VCD的文檔。 (您也可以在文檔中搜索「轉儲」 - 您的模擬器可能使用不同的文件格式進行轉儲)。

    2. 一旦您創建了模擬轉儲,您就可以將轉儲加載到wave-form viewer中。如果您使用的是gEDA package,那麼您將使用gtkwave來查看轉儲。

如果你想使用GHDL和gtkwave調試您的VHDL代碼,你可以在ubuntu用命令來安裝:

% sudo apt-get install geda ghdl 

(假設你有root訪問權限該機器運行的Ubuntu的)

+0

你的回答非常豐富。我會盡快嘗試,並在必要時尋求進一步的協助 – DarkKnight 2011-03-29 14:10:14

0

使用仿真軟件,如ModelSim。這種軟件通常非常昂貴。一般情況下,如果你使用vhdl合成器,你會得到它的一些輕量級的變體或類似的軟件,這對於較小的事物來說已經足夠了。

+0

不貴:ModelSim的輕量級版本隨Altera的Quartus免費提供。 – Philippe 2012-03-06 10:10:34

2

賽靈思提供免費版本的設計套件:http://www.xilinx.com/tools/webpack.htm。 Webpack包含VHDL模擬器,雖然我上次嘗試過,但我更喜歡ModelSim的模擬器。它可能已經改變了。

Wepack不同於ModelSim,因爲它不僅是模擬器,還是全面的FPGA設計套件。

ModelSim的缺點是它的許可證 - 就我而言,它只對學生是免費的。

0

對於那些一直不推動語言規範的小型工作,GHDL可以很好地作爲模擬器IME。隨着你進一步推進(你必須,你不能在硅片上調試任何大規模的代碼),你可能會發現你需要在Mentor的Modelsim/Questa或Aldec的ActiveHDL/Riviera上花費一些錢。

2

這裏提到的其他人可能更合適的成本和可用性的基礎上。然而我迄今使用的最好的HDL /網表調試器是Verdi

2

你在找什麼是一個VHDL模擬器。有幾個備選方案可供選擇:

  1. 導師的ModelSim
  2. 賽靈思ISIM
  3. Aldec公司裏維埃拉和ActiveHDL
  4. Simili

的Simili軟件是作爲一個免費的版本,性能有限。

一旦你安裝了模擬器,你需要學習如何使用它。通常你也必須用VHDL寫一個測試臺,但是一些模擬器可以讓你從圖形用戶界面創建激勵信號。您可以在此頁面找到大量基於VHDL的測試平臺示例:VHDL Tutorials

在模擬器中,您可以在波形查看器中直觀地檢查設計的狀態,並且還可以在代碼中設置斷點來調試設計。

0

首先我創建了測試平臺來測試我的組件,用isim來模擬這個測試平臺,我在主代碼區插入了斷點,使用了進入按鈕的步驟進入代碼,或者運行按鈕跳轉到下一個斷點 與我用過的任何編程語言相同

0

「調試」VHDL的專業方法是創建一個「測試臺」。像其他所有VHDL一樣,它很複雜。這裏有一個「如何測試臺」鏈接:vhdl Testbenches

我很懶惰。我也不專業。我更喜歡做所謂的「強迫」。如果您使用的是Xilinx,ModelSim或Vivado,那麼您可以將VHDL代碼折騰成「模擬」。您可以在波形中添加信號,選擇這些信號(右鍵點擊它們)並強制它們的值爲'0'或'1'。然後,在「強制」輸入之後,運行模擬幾納秒並查看輸出。