由于高分辨率模式所需的像素時鐘往往都大于100 MHz,不能由開發板自帶的晶振分頻產生,所以在設計中采用了Quartus中Tool->MegaWizard Plug-In Manager產生 IP核中的ALTPLL模塊,實現數字鎖相環PLL,將50 MHz的原始時鐘信號轉變為穩定的高頻像素時鐘。
3.3 VGA行場同步信號發生
下面是本設計中VGA同步信號產生的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 檢測樣圖信號的產生
由于檢測圖樣多為有規律的色塊,在圖樣產生過程中可以充分利用位運算來提高信號產生的速度,減少對存儲單元的依賴。
3.5 仿真結果
本設計采用ModelSim專業仿真軟件進行仿真。對于PLL模塊,由于SE版本的ModelSim不支持Quartus II內置IP核,可以在Quartus II內獨立仿真;對于其他模塊,建立testbench.v測試文件,在ModelSim中新建項目進行編譯、仿真。
仿真圖中,clk是晶振產生的50 MHz時鐘;rst_n是低電平有效清零輸入;VGA_HS、VGA_VS分別為行同步、場同步信號;ready_sig為有效顯示區指示信號;frame_sig為幀脈沖,每幀結束時產生一個高脈沖;x_addr、y_addr為當前掃描像素的坐標。
4 實際測試效果
由于VGA有著較為廣泛的使用,所以本設計的圖樣輸出接口設計成VGA模擬信號的輸出。若要進一步改進本文高分辨率LCD屏檢測儀的設計,可以考慮增加HDMI和YPbPr多端子的輸出,并進一步擴大檢測分辨率范圍,從而保證檢測儀能適應更多LCD屏的檢測。