從老板讓自己看有關(guān)FPGA的書到現(xiàn)在已經(jīng)過去一個多月了,雖然中間斷斷續(xù)續(xù)有在做畢業(yè)設(shè)計什么的,但也一直在看楊老師推薦的夏雨聞老師的《Verilog 數(shù)字系統(tǒng)設(shè)計教程》。這本書里面都是在講Verilog的基本語法和一些簡單模塊的代碼也有一些優(yōu)化過的實(shí)際工程實(shí)例,看這個書給我的感覺就是:Verilog語言跟C語言很像,我也知道它跟C語言是完全不同的思路的,但我就是不明白為什么它就可以用代碼來描述硬件呢。還有這個書上名沒有對FPGA做一個基本的介紹,所以看這個書的時候我甚至都不大了解FPGA是個什么東西。所以前面一段時間就一直對著這個書、做一些筆記、記語法,跟學(xué)習(xí)軟件沒啥區(qū)別。
最近這一周就想著自己開始搗鼓QuartusII軟件的仿真,剛開始的時候還以為這個軟件就跟C語言等語言的編譯環(huán)境一樣,把代碼輸進(jìn)去點(diǎn)擊仿真按鈕就會自己仿真然后由結(jié)果顯示出來的。經(jīng)過查找相關(guān)的資料材才知道這個是不一樣的,F(xiàn)PGA的仿真分為功能仿真(RTL級仿真)、綜合仿真和綜合后仿真。每一個仿真的操作步驟也都是不同的。還有一個之前沒有認(rèn)識到的是FPGA的仿真還要借助第三方的EDA工具進(jìn)行仿真,比如說Modelsim SE 或Modelsim-Altera等,還要自己編寫測試腳本。這幾天也通過自己找資料大概了解了QuartusII和Modelsim軟件的使用,可是在做仿真的時候就是不能得出正確的波形。而每本參考書上對這部分也只是簡單的介紹,按照他們的步驟到最后就出不來。這個讓我很困惑,昨天在找資料的時候,發(fā)現(xiàn)一位前輩寫的他讀了特權(quán)同學(xué)的《深入淺出玩轉(zhuǎn)FPGA》這本書的感受,感覺跟我的困惑差不多。而且覺得他寫得很有道理就決定去找一下這本書,不幸的書在圖書館暑假上沒有找到這本書不過找到了特權(quán)同學(xué)寫的另一本書——《FPGA/CPLD邊練邊學(xué)》。
今天下午就開始研讀這本書,看了前面幾章這本書給我的感覺是跟其他的教科書不一樣,文字描述的不那么正式,看起來比較符合舒服就好像有個人在面前跟你說一樣。因?yàn)橹熬涂催^夏老師有關(guān)Verilog的書,對Verilog已經(jīng)有所了解,所以一下子就把前三章看完了。其中有關(guān)對FPGA硬件部分的介紹,讓我對FPGA有了新的認(rèn)識,LAB、LE等詞也知道什么意思了。第四章是一個完整的工程實(shí)踐案例,它講的是一個基于特權(quán)同學(xué)自己開發(fā)的一個開發(fā)板的電燈實(shí)驗(yàn)。我就跟著它上面的步驟一步一步地來,這一次終于出現(xiàn)了正確的仿真波形。
1、建立工程和頂層文件
頂層文件一般和工程名字相同,工程建立完后,新建一個空白的Verilog文件,在輸完代碼后點(diǎn)擊保存系統(tǒng)會自動保存到之間監(jiān)理工程的目錄下文件名也會自動設(shè)置成與工程名一樣。并且默認(rèn)為是頂層文件。
2、關(guān)于測試文件
之前每次仿真錯誤的可能原因是發(fā)測試文件也加入到工程里面去了,而一般測試文件時不可綜合的。對于測試文件正確的做法是,在確保所所輸入的代碼沒有無法錯誤的情況下,點(diǎn)擊菜單欄的Processing——Start——Start Test Bench Template Writer ,系統(tǒng)會在工程目錄下自動生成一個.vt 的文件。找到這個文件,根據(jù)設(shè)計的代碼修改測試監(jiān)本文件后保存。
3、對Modelsim軟件的操作
之前都是直接用Modelsim來仿真的,這次是在QuartusII來調(diào)用Modelism進(jìn)行仿真的。這里出現(xiàn)了和書上步驟不一樣的地方了。書上是調(diào)用后就會直接出現(xiàn)仿真波形,我這邊是沒有出現(xiàn)還要對測試腳本進(jìn)行編譯和點(diǎn)擊開始仿真。剛開始的時候也是沒有看到正確的仿真波形的,我實(shí)驗(yàn)了好多從都是一樣,看到的波形
雖然這是一個最簡單的功能的仿真,但是在我學(xué)習(xí)FPGA的過程中也算得上是一個小進(jìn)步啦。還是要感謝特權(quán)同學(xué)的書的指導(dǎo),讓我解開了一些對于FPGA的迷惑。也讓我感覺到選著一般好的參考書對于學(xué)習(xí)還是很重要的。還有一點(diǎn)是,在按照教程去操作的時候,自己這邊出現(xiàn)的救國并不一定會和教程中一樣,當(dāng)遇到不一樣的時候要學(xué)會自己分析是不是自己在操作上錯誤了,然后想辦法去解決。其實(shí)我覺得出錯是好事,這樣才能讓自己去鉆研去學(xué)習(xí)。