ISE入門三部曲
雙擊 Simulate Behavioral Model,將進(jìn)入ISE自帶的仿真軟件,如圖17所示,從波形圖中可以清楚的看到自己寫的程序是否達(dá)到了自己所需的功能要求,當(dāng)然也可以利用Isim進(jìn)行斷點(diǎn)調(diào)試,查看中間變量是否正確,也可以利用Isim查看用IP核生成的存儲(chǔ)器內(nèi)部的值。Isim雖然是ISE自帶的仿真軟件,與專業(yè)的仿真軟件還有一定距離,但是不可否認(rèn)的是Isim很方便快捷,很多時(shí)候利用Isim進(jìn)行仿真已經(jīng)完全足夠了。
本文引用地址:http://www.ex-cimer.com/article/159138.htm如果你只是完成一個(gè)功能任務(wù),不用下載到硬件板卡上,仿真結(jié)果也是正確的,那么此時(shí)你的任務(wù)已經(jīng)完成了,深深的祝福你,完成了任務(wù)哈。
如果需要下載到硬件平臺(tái)上,下一步需要建立引腳約束文件(即將模塊的輸入和輸出連接到真實(shí)的引腳上),然后生成bit文件,下載到板卡上即可。
在編寫Verilog時(shí)常見的錯(cuò)誤如下:
寫了begin,忘了寫end,檢查時(shí)將代碼的縮進(jìn)調(diào)整好,每一級(jí)都有不同的縮進(jìn),這樣一眼就看出哪里少了end。
case語句少了endcase,這個(gè)地方比較容易遺忘,一旦少了endcase,endcase之后的語句都會(huì)報(bào)語法錯(cuò)誤(Syntax error),如果只是根據(jù)編譯器提示的錯(cuò)誤行,那就沒法找到錯(cuò)誤了,編程的時(shí)候習(xí)慣一定要好,寫一個(gè)case,順便就把,default和endcase都寫上吧。
if語句少了else,這個(gè)和第二錯(cuò)誤類似,else之后的語句都會(huì)報(bào)語法錯(cuò)誤,加上else之后,錯(cuò)誤全都沒有了。
輸入了中文標(biāo)點(diǎn)符號(hào),如逗號(hào)和分號(hào),這個(gè)時(shí)候一般錯(cuò)誤只定位到一行上,你可能覺得沒有錯(cuò)誤,不妨把這行刪掉再寫一次試試。
信號(hào)沒有初始化,仿真是全是x,一個(gè)原因是真的沒有初始化,ISE定義的一個(gè)信號(hào),如果不給初始值的話,默認(rèn)就是x;另外一個(gè)原因是,模塊與模塊之間連線沒有連上,如果一個(gè)模塊的信號(hào)不是和頂層連在一起而是和另外一個(gè)模塊連接在一起,則需要再定義,否則是沒有連上的。筆者曾經(jīng)因?yàn)榉噶诉@個(gè)錯(cuò)誤,仿真時(shí)一直沒有信號(hào)輸出,苦惱了很久的。
阻塞賦值和非阻塞賦值用在了同一個(gè)always里面,這個(gè)是不允許的,阻塞(=)賦值是執(zhí)行完了這一句才會(huì)執(zhí)行下一句,非阻塞(<=)賦值是整個(gè)always都跑完了才執(zhí)行。不過這個(gè)錯(cuò)誤比較容易找,ISE報(bào)錯(cuò)時(shí)會(huì)定位到相應(yīng)的行。
可控硅相關(guān)文章:可控硅工作原理
比較器相關(guān)文章:比較器工作原理
評(píng)論