我是電子工程系的學生,去年我們學習了VHDL基礎知識,並且想要提高自己在這個領域和數字設計領域的經驗,我想成爲這個領域的專家。我怎樣才能做到這一點?我在網上搜索了很多,並沒有發現任何東西。請任何幫助。萬分感謝。如何提高我在VHDL中的體驗?
回答
對於數字設計領域的初學者來說,特別是在可編程邏輯器件領域,最困難的事情之一就是認識到您正在用更高級別的編程語言來描述電路。儘管該語言可能支持許多外來構造,但只有這些構造的一部分描述了在您有興趣定位的硬件上實際可實現的電路。
那麼你如何更好地理解這一點? (你的問題)
我的建議:
- 最重要的是:業餘愛好項目有(或沒有)演示板。擁有硬件可以使它變得有趣,但是即使在硬件出現之前,你也會做很多事情。你會在這裏做很多「重新發明輪子」,只是爲了學習。不要害怕在FPGA中實現第100萬次UART;你將學習。
- 作爲您在業餘愛好項目中的工作,花時間瞭解您在VHDL中描述的內容與目標設備的實際硬件相關的方式。例如,一旦你綜合了你的設計,研究RTL和/或技術視圖,看看它是如何實現的。這是你所期望的嗎?
- 閱讀/參考資源,如教科書,面向VHDL的綜合或VHDL目標PLD。關於VHDL有很多關於VHDL的教學信息,但只有一部分適用於「真實世界實現」的世界。我還建議您查看VHDL 2008的信息,因爲VHDL 2008爲表格帶來了一些很棒的新功能,在某些情況下使VHDL不那麼痛苦。
- 閱讀論壇/新聞組關於這個問題,如comp.arch.fpga。我發現的最有趣的討論是關於「最佳實踐」的討論。這是一個很好的機會打破教科書和報告廳的想法。
的一些想法愛好項目:
- 7段顯示接口
- LCD接口
- UART
- 鍵盤接口
- 4函數計算器
- 接口至傳感器(例如溫度)
看看fpga4fun.com的verilog項目並將它們轉換爲vhdl並讓它們工作。 或者從頭開始寫在vhdl中。 如上所述,uart是一個很好的學習項目。
製作你自己的簡單cpu(微控制器)。 從Josh提到的四個函數調用器開始,並將其擴展爲一個簡單的cpu。
或者添加額外的功能,以現有的軟CPU內核像zpuino之一(Arduino的克隆)
了很多書的目的是大學學科
合理的免費書籍 免費的FPGA http://www.freerangefactory.org/site/pmwiki.php/Main/Books
不錯 通過VHDL進行FPGA原型實例:Xilinx Spartan-3版本
獲取一塊電路板。設計和實施項目。開始簡單和建立。 不要試圖去複雜的馬上。
Digilentinc有一些便宜的或者安富利USB加密狗板,花費$ 80
的小工具廠鳳蝶平臺看起來合理digilentinc PMOD擴展插件,似乎有一個良好的很多教訓和支持它的背後(斯巴達3或從賽靈思Spartan 6個芯片)papilio.cc
從工廠的小工具+ papillio插件板(翼) http://www.kickstarter.com/projects/13588168/retrocade-synth-one-chiptune-board-to-rule-them-al
爲Altera的友晶板好看
幾個我最喜歡的FPGA書(未介紹書籍)爲基礎的FPGA 原型法手冊:在設計換原型 100 FPGA設計人員的祕訣
對不起不得不削減的鏈接作爲一個最佳實踐新用戶。
練習使完美。 這裏有一些想法的項目上下工夫:(按難度排序)
- 半加器
- 全加器
- 4位脈動加法/減法
- 攜帶前進位加法器
- ALU包括像加/減的有符號/無符號,與,或,或,左/右邏輯/算術運算,...
- 狀態機的實現。
- 7段計數器 總是參考VHDL參考手冊。
- 1. 如何在Linux桌面上提高我的編程體驗?
- 2. 提高一個數量,在VHDL
- 3. 如何提高Dynamics CRM 2011中的用戶體驗?
- 4. 如何在VHDL體系結構中使用實體
- 5. 如何提高打印質量當我打印在Win中的窗體在C#
- 6. 如何提高Android上TextButton的字體
- 7. (VHDL)在vhdl實體中輸出的問題
- 8. 我如何提高立體聲校準精度?
- 9. 如何提高我的日誌類別
- 10. MySQL:如何提高我的查詢?
- 11. 如何提高我的代碼效率?
- 12. 如何提高我的選擇性能
- 13. 如何提高我的推送過程
- 14. 如何提高我的網頁效果?
- 15. 如何提高我的JavaScript代碼?
- 16. 如何提高我的Muenchian分組XSLT?
- 17. 如何提高我的爪子檢測?
- 18. VHDL /如何初始化我的信號?
- 19. 人的身高,體重驗證在asp.net
- 20. 我如何在Elixir中提高一個數字的權力?
- 21. 如何提高我在htaccess中的簡單mod_rewrite?
- 22. 如何提高
- 23. 如何在C中驗證我的Windows窗體#
- 24. 如何提高在JS
- 25. 如何提高MySQL中
- 26. Oracle高級隊列體驗
- 27. 如何在VHDL中「切片」std_logic_vector?
- 28. 如何提高在Windows窗體中呈現的WPF用戶控件的性能
- 29. 如何在VHDL中製作一個簡單的4位奇偶校驗器?
- 30. 如何在我的課堂上提高字符串的性能?
+1 - 建立一些有趣的事情,並在你做這件事時閱讀 –
+1 - 太好了。如果您可以爲書籍,論壇等添加一些示例和建議,就像您爲愛好項目所做的那樣,那將會更好。 –