10.9??典型實例19:VGA接口的設計與實現(xiàn)
10.9.1??實例內(nèi)容及目標
1.實例的主要內(nèi)容
本節(jié)旨在設計實現(xiàn)了FPGA與VGA顯示器的接口,幫助讀者進一步了解VGA接口的時序和設計方法。
2.實例目標
通過本實例,讀者應達到以下目標。
·??掌握VGA接口的標準時序。
·??掌握利用FPGA設計驅(qū)動的基本思想和方法。
·??熟練掌握狀態(tài)機的使用。
10.9.2??VGA接口實例內(nèi)容
紅色颶風開發(fā)板的VGA接口可以產(chǎn)生8種顏色,可以用來顯示字符和簡單圖形。本實例要求通過VGA接口,在顯示器上依次顯示8種顏色的彩色條紋,條紋寬度相同。
10.9.3??FPGA代碼設計實現(xiàn)
按照VGA時序要求產(chǎn)生行/列同步信號,并且在指定的時間(有效像素期間)將要顯示的顏色數(shù)據(jù)輸出到RGB。
不同的顯示模式和刷新頻率下,具體同步信號前、后、同步信號、有效像素數(shù)是不同的,要根據(jù)像素時鐘頻率來設置。以800×600,60Hz為例,像素時鐘為40MHz,即:
像素時鐘=(800+40+128+88)×(600+1+4+23)×60=40MHz
設計中可根據(jù)系統(tǒng)時鐘頻率來選擇合適的顯示模式。
10.9.4??ModelSim仿真驗證
1.行顯示
設定一個列計數(shù)器,計數(shù)到相應的值時,給出相應的同步信號,并在像素有效期間,輸出有效的顏色數(shù)據(jù),行計數(shù)器通過檢測列同步信號來計數(shù),檢測到列同步信號,表示新一行的開始,這樣就可控制在不同的行顯示不同的內(nèi)容。
仿真結(jié)果如圖10.45所示。
圖10.45??行顯示仿真結(jié)果
其中,hcnt為列計數(shù),列計數(shù)到有效像素時,給出enable信號,只有enable信號為高時,才給出有效像素數(shù)據(jù),并且在每個同步信號后,行計數(shù)器加1。
如圖10.46所示為行同步信號產(chǎn)生時仿真結(jié)果,當計數(shù)到604-1=603行時,給出行同步信號,同步信號低電平持續(xù)4個行的時間,同步信號后持續(xù)21行的時間,之后再從第一行第一列開始。
圖10.46??行同步信號產(chǎn)生后仿真結(jié)果
?
2.列顯示
如圖10.47是列顯仿真結(jié)果。列顯示和行顯示不同在于,同一行的像素,計數(shù)到不同的值時,輸出不同的顏色數(shù)據(jù),每一行都是如此,最終就可得到列顯的彩色條紋。
圖10.47??列顯仿真結(jié)果
10.9.5??小結(jié)
本節(jié)對利用FPGA來驅(qū)動VGA接口顯示器的方法做了介紹,并通過編譯下載在紅色颶風的開發(fā)板上實現(xiàn)