VGA Controller
VGA控制器控制5個基本的訊號
HS(水平同步訊號)、VS(垂直同步訊號)、
R(紅色訊號)、 G(綠色訊號)、B(藍色訊號)
運作原理
訊號會從顯示器的左上角開始由左到右掃描顯示,一行一行由上往下掃描顯示
FPGA的輸出訊號是數位的訊號,可是輸入到顯示器的RGB訊號是類比的訊號,所以需要D/A轉換器。
D/A轉換器
Nexys-2利用三個電阻電路組成簡單的D/A轉換器
Nexys-2提供8-bit的顏色訊號,3-bit紅色3-bit綠色2-bit藍色,所以共可產生256種顏色
Timing
HS水平同步訊號
這個訊號分為四個區塊SP(同步脈衝)、BP(Back porch)、HV(水平影像)、FP(Front porch)
SP(同步脈衝)產生新的一行與將HS轉為low ,在BP的時候使HS轉為high 可是並未在顯示器上顯示訊號,
經過BP後進入HV此時開始將訊號由左至右顯示,顯示完以後進入FP此時HS依然為high狀態,之後進入SP狀態。
使用25MHz clock 每畫素產生的時間為0.04µs ,640畫素為640×0.04µs = 25.6µs
根據標準SP的時間長度須為HV的5分之1,所以SP 為 25.6µs/5 = 5.12µs ,SP的畫素為25.6µs/0.04µs = 128。
根據標準BP&FP的時間長度須為HV的40分之1,所以25.6µs/40 = 0.64µs ,BP&FP的畫素為0.64µs /0.04µs = 16。
HS的畫素為SP+BP+HV+FP=128+16+640+16=800。
產生一行的時間為800×0.04µs=32µs。顯示器的頻率為60Hz週期為16.67ms,16.67ms/32µs=521條水平線
VS垂直同步訊號
這個訊號分為四個區塊SP(同步脈衝)、BP(Back porch)、VV(水平影像)、FP(Front porch)
要產生480條水平線所需時間為480×32µs = 13.36ms,根據標準SP的時間長度須為VV的240分之1,所以SP 為 13.36ms /240 = 0.064ms
SP的畫素為0.064ms/32µs = 2。根據標準以75%,25%分配BP&FP 521=SP+BP+VV+FP=2+29+480+10。產生一行的時間為800×0.04µs=32µs
Project1
在螢幕上顯示交錯的16條相間的紅綠
<波形圖>
Project2
利用prom改變顯示的圖形利用指撥開關控制顯示的位子
<>
<整體波形圖>
<放大波形圖>
Project3
將圖形存在Block ROM將圖顯示在螢幕上利用指撥開關控制顯示的位子
Project4
將圖形存在Block RO按下Button讓圖形在螢幕上移動顯示