【從零開(kāi)始走進(jìn)FPGA】美好開(kāi)始——我流啊流啊流
3. 代碼編譯
本文引用地址:http://dyxdggzs.com/article/268641.htm(1)通過(guò)Processing-Start Compilation,或者工具欄的圖標如下:

(2)編譯結果如下,可見(jiàn)相關(guān)信息:

(3)警告的分析及解決:

a) Warming(4)如上圖所示,具體解釋如下:
i. 沒(méi)有電容配置
ii. 沒(méi)有把unused的pin設置為三態(tài)。在A(yíng)ssignment-Device-Device and Pin Opitions-Unused Pins,設置如下圖所示:

iii. 沒(méi)有電容配置
iv. 可以忽略

b) Critical Warming(5)如上圖所示,具體解釋如下:
i. 引腳沒(méi)有分配IO
ii. 沒(méi)有sdc時(shí)序約束文件
iii. 沒(méi)有sdc約束文件
iv. 時(shí)序沒(méi)有達到要求
v. 時(shí)序沒(méi)有達到要求
出現這些警告的原因是因為Quartus II 10.1以后的版本軟件,不再自帶TimeQuest Timing Analyzer,只有Classic Timing Analyzer,雖然不加sdc時(shí)序約束對于一般情況也不一定會(huì )有錯,但軟件設計的必然會(huì )出現這樣的警告。關(guān)于TimingQuest sdc,會(huì )在后續章節中闡述,此處不做具體說(shuō)明。
關(guān)于Quartus II 警告信息分析以及零警告的處理,可以右擊警告查看help,altera會(huì )告訴您相應的解決方案;此外,Bingo已上傳Chinaaet“Quartus II 警告分析.pdf”,下載地址為:http://www.chinaaet.com/lib/detail.aspx?id=86271
初學(xué)折有不到之處可以查閱該pdf,記住,永遠不要輕易忽略警告。
三、Modelsim-Altera仿真
1. 為什么要仿真
首先討論兩個(gè)問(wèn)題:
(1)仿真?是真的嗎?
仿真,只是為了模擬真實(shí)現象,測試代碼的行為以及時(shí)序的正確性;當然,仿真永遠是模仿的,不可能是絕對準確的,只能在一定程度上模擬真實(shí)時(shí)序,讓我們的設計變得更可靠。仿真對于電路設計者,只是一個(gè)軟件測試的平臺,而不是實(shí)際硬件設施的測試結果。
(2)一定要仿真嗎?
未必!如果你有足夠的把握時(shí)序的準確性,腦子里能夠完成整個(gè)電路的時(shí)序邏輯工作流程,仿真就不是那個(gè)必須的了;對于已經(jīng)成型的模塊,保證時(shí)序準確的情況下,何必在徒勞的仿真呢?按常理,是現有Quartus II軟件,再有仿真軟件的吧,Testbench只是測試程序,鏈接兩者之間的橋梁。
回想,在n年前的老工程師,用block中用與非門(mén)與74系列芯片設計的原理圖,要仿真似乎變得很難?那些老前輩們是通過(guò)實(shí)物的測試,不斷的修正、改善,最后才得到可靠的電路。
因此,仿真 不是必須的。Bingo就經(jīng)常不仿真!不是說(shuō)懶,是因為腦子中的電路時(shí)序邏輯,本能性的能夠保證電路的準確性,或者說(shuō)出了問(wèn)題能夠自行改正,不會(huì )失去了方向。所謂代碼在電腦上,電路在腦子中,每一句行為級語(yǔ)言,都加增添一個(gè)電路。
當然,并非每一個(gè)人都可以這樣子的。對于初學(xué)者而言,仿真是非常重要的一個(gè)過(guò)程。原因是因為在初學(xué)者腦子中,還未呈現固定邏輯實(shí)現的時(shí)序工作流程,換句話(huà)說(shuō),經(jīng)驗不夠豐富吧。
當然在時(shí)序很復雜而且龐大時(shí),時(shí)序仿真是必須的,因為在這種情況下,大腦的模擬也許無(wú)法跟計算機的計算速度比擬了。
前文安裝Quartus II 軟件章節有提到過(guò),Quartus II 9.1以前版本,軟件自帶仿真器,而9.1以后的版本,需要第三方軟件的支持。第三放仿真軟件有很多,而用的最多的,固然是Modelsim-Altera。本章節中Quartuus II 11.0與Modelsim-Altera協(xié)同工作,仿真測試本例程的代碼的時(shí)序。希望通過(guò)節的分析,對時(shí)序邏輯上有一個(gè)更深刻的認識。
fpga相關(guān)文章:fpga是什么
c++相關(guān)文章:c++教程
評論