由于高分辨率模式所需的像素時鐘往往都大于100 MHz,不能由開發(fā)板自帶的晶振分頻產(chǎn)生,所以在設(shè)計中采用了Quartus中Tool->MegaWizard Plug-In Manager產(chǎn)生 IP核中的ALTPLL模塊,實現(xiàn)數(shù)字鎖相環(huán)PLL,將50 MHz的原始時鐘信號轉(zhuǎn)變?yōu)榉€(wěn)定的高頻像素時鐘。
3.3 VGA行場同步信號發(fā)生
下面是本設(shè)計中VGA同步信號產(chǎn)生的VerilogHDL描述:
reg [11:0] h_cnt, v_cnt;
always @(posedge clk_pix or negedge rst_n)
if(!rst_n)
h_cnt <= 0;
else if(h_cnt == H_TOTAL)
//scanning of one line finished
h_cnt <= 0;
else
h_cnt <= h_cnt + 1'b1;
always @(posedge clk_pix or negedge rst_n)
if(!rst_n)
v_cnt <= 0;
else if(h_cnt == H_TOTAL)
if(v_cnt == V_TOTAL)
//scanning of one frame finished
v_cnt <= 0;
else
v_cnt <= v_cnt + 1'b1;
assign VGA_VS=(v_cnt>=0 && v_cnt
assign VGA_HS=(h_cnt>=0 && h_cnt
3.4 檢測樣圖信號的產(chǎn)生
由于檢測圖樣多為有規(guī)律的色塊,在圖樣產(chǎn)生過程中可以充分利用位運算來提高信號產(chǎn)生的速度,減少對存儲單元的依賴。
3.5 仿真結(jié)果
本設(shè)計采用ModelSim專業(yè)仿真軟件進(jìn)行仿真。對于PLL模塊,由于SE版本的ModelSim不支持Quartus II內(nèi)置IP核,可以在Quartus II內(nèi)獨立仿真;對于其他模塊,建立testbench.v測試文件,在ModelSim中新建項目進(jìn)行編譯、仿真。
仿真圖中,clk是晶振產(chǎn)生的50 MHz時鐘;rst_n是低電平有效清零輸入;VGA_HS、VGA_VS分別為行同步、場同步信號;ready_sig為有效顯示區(qū)指示信號;frame_sig為幀脈沖,每幀結(jié)束時產(chǎn)生一個高脈沖;x_addr、y_addr為當(dāng)前掃描像素的坐標(biāo)。
4 實際測試效果
由于VGA有著較為廣泛的使用,所以本設(shè)計的圖樣輸出接口設(shè)計成VGA模擬信號的輸出。若要進(jìn)一步改進(jìn)本文高分辨率LCD屏檢測儀的設(shè)計,可以考慮增加HDMI和YPbPr多端子的輸出,并進(jìn)一步擴大檢測分辨率范圍,從而保證檢測儀能適應(yīng)更多LCD屏的檢測。