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