顯示器因為其輸出信息量大,輸出形式多樣等特點(diǎn)已經(jīng)成為現在大多數設計的常用輸出設備。在 FPGA 的設計中可以使用很少的資源,就產(chǎn)生 VGA 各種控制信號。這個(gè)示例在 RHicSP2200B FPGA 開(kāi)發(fā)板/學(xué)習板上使用 VGA 接口在顯示器上顯示了文字以及簡(jiǎn)單的圖形,可以作為VGA 顯示設計的參考,如果在使用這個(gè)例子的過(guò)程中有任何問(wèn)題都可以通過(guò) 郵件 calvin_richic@yahoo.com.cn聯(lián)系作者。 顯示器術(shù)語(yǔ) 像素與分辨率 顯示器的顯示方式有兩種 : A/N(Alphabet/Number:字符/數字)顯示方式 和 APA(All Point Addressable:全點(diǎn)尋址) 顯示方式,即文本顯示方式和圖形顯示方 式。A/N 方式已淘汰不用,目前微機都采用 APA 圖形方式。 顯示器上輸出的一切信息,包括數值、 文字、表格、圖象、動(dòng)畫(huà)等等,都是由光點(diǎn)(即像素)構成的。組成屏幕顯示畫(huà)面的最小單位是像素,像素之間的最小距離為點(diǎn)距(Pitch)。點(diǎn)距越小像素密度越大,畫(huà)面越 清晰。顯示器的點(diǎn)距有 0.31mm、0.28mm、0.24mm、0.22mm 等多種。 分辨率指整屏顯示的像素的多少,是衡量顯示器的一個(gè)常用指標。這同屏幕尺寸及點(diǎn)距密切相關(guān),可用屏幕實(shí)際顯示的尺寸與 點(diǎn)距相除來(lái)近似求得。點(diǎn)距為 0.28mm 的 15 英寸顯示器,分辨率最高為 1024×768。 顯示器尺寸 顯示器屏幕尺寸以對角線(xiàn)來(lái)度量,常用的顯示器有 14、15、17、19、21 英寸等。 顯示器水平方向長(cháng)度與垂直方向高度之比 一般為 4:3。 掃描頻率 顯示器采用光柵掃描方式,即轟擊熒光屏的電子束在 CRT 屏幕上從左到右(受水 平同步信號 HSYNC 控制)、從上到下(受 垂直同步信號 VSYNC 控制)做有規律的移動(dòng)。光柵掃描又分逐行掃描和隔行掃描。電子束采用光柵掃描方式,從屏幕左上角一點(diǎn) 開(kāi)始,向右逐點(diǎn)進(jìn)行掃描,形成一條水平線(xiàn);到達最右端后,又回到下一條水平線(xiàn)的左 端,重復上面的過(guò)程;當電子束完成右下角一點(diǎn)的掃描后,形成一幀。此后,電子束又回到左上方起點(diǎn),開(kāi)始下一幀的掃描。這種 方法也就是常說(shuō)的逐行掃描顯示。 而隔行掃描指電子束在掃描時(shí)每隔一 行掃一線(xiàn),完成一屏后再返回來(lái)掃描剩下的 線(xiàn),這與電視機的原理一樣。隔行掃描的顯示器比逐行掃描閃爍得更厲害,也會(huì )讓使用者的眼睛更疲勞。目前微機所用顯示器幾乎都是逐行掃描。 完成一行掃描所需時(shí)間稱(chēng)為水平掃描時(shí)間,其倒數稱(chēng)為行頻率;完成一幀(整屏) 掃描所需的時(shí)間稱(chēng)為垂直掃描時(shí)間,其倒數為垂直掃描頻率,又稱(chēng)刷新頻率,即刷新一屏的頻率。常見(jiàn)的有 60Hz、75Hz 等,標準 VGA 顯示的場(chǎng)頻60Hz,行頻為31.5kHz。 顯示帶寬 帶寬則指顯示器可以處理的頻率范圍。如果 60Hz 刷新頻率的 VGA 方式,其帶寬達 640×480×60=18.4MHz;70Hz 刷新頻率1024×768 分辨率的 SVGA 方式,其帶寬達1024×768×70=55.1MHz。 早期的顯示器頻率固定,F在流行的多 屏顯示器采用自動(dòng)跟蹤技術(shù),使顯示器的掃描頻率自動(dòng)與顯示卡的輸出同步,達到較寬的適用范圍。 顯示卡術(shù)語(yǔ) 一個(gè)像素點(diǎn)可有多種顏色,由表示該像素的二進(jìn)位數(又稱(chēng)像素的位寬)決定。像 素位寬為 8bit,則每個(gè)像素有 28=256 種顏 色;位寬為16bit 則有 216=65536 種顏色, 位寬為 24bit 則有 224 即一千七百多萬(wàn)種顏色。顯示卡內的D/A(數/模)轉換電路將每 個(gè)像素的位寬(二進(jìn)位整數)轉換成對應亮度的 R、G、B(紅、綠、藍)模擬信號,控制屏幕上相應的三色熒光點(diǎn)發(fā)光,產(chǎn)生所要求的顏色。 隨著(zhù) PC 機的不斷更新?lián)Q代,顯示控制卡(即顯示適配器)的標準也不斷發(fā)展。從最初的 MDA(單色顯示適配器)→CGA(彩色圖形顯示適配器)→EGA(增強型圖形適配器)→VGA(視頻圖形陣列適配器)。VGA 一改以前顯示卡采用的數字視頻信號輸出,而用模擬視頻信號輸出,VGA 卡內的 D/A 轉換器將數字信號轉換為控制 R、G、B 三 原色的模擬信號,使像素色彩變化非常平滑,更適合人的視覺(jué)感受。 性能高于VGA 并與之兼容的顯示適配 卡有 TVGA 和 SVGA。隨著(zhù) Windows 的普及和對快速度、多色彩、高分辨率的需要, 一些廠(chǎng)家在 SVGA 芯片中增加更多的硬件 來(lái)支持 Windows 的加速,這類(lèi)顯示適配器一般被稱(chēng)作 AVGA(Accelerated VGA:加速VGA)。目前大多數微機上的顯示卡都屬于 AVGA 類(lèi)型。 顯示卡主要由圖形處理芯片、視頻存儲器及 BIOS 芯片等組成。一般 AVGA 類(lèi)型顯示卡的控制器由單塊 AVGA 芯片充當,其中包含的圖形加速控制器對提升圖形功能至關(guān)重要。 顯示卡的性能主要取決于卡上使用的圖形芯片。早期的圖形芯片沒(méi)有幀緩沖器,有關(guān)幀的操作都要由 CPU去處理,降低了顯示速度,F在多數顯示卡上都設置具有圖形處理功能的加速芯片,可處理像 Windows類(lèi)型的圖形任務(wù)而減少 CPU 參與。更高級的顯示卡上有協(xié)處理器,可大大減免 CPU 的處理和參與。 利用視頻存儲器 VRAM 儲存顯示數據,可減少甚至免去訪(fǎng)問(wèn)系統主存,加快顯示速度。 640×480-16色VGA顯示一屏需640×480×Log216/8=154KB 顯示存儲器,1024×768 真彩顯示一屏則需1024×768×24÷8≈2.3MB。 顯示卡插在系統板的擴展槽內,通過(guò)電纜連接到機箱背面的15 針D 型插座連接器上。某些高檔的主板內置了顯示卡的功能。 CRT 顯示器背面有一個(gè)與顯示器連接好的視頻電纜,電纜的末端是 15針插入式連接器,使用時(shí)將它直接插入主機機箱背面的 15孔D 型插座上即可。 VGA 時(shí)序設計 在 VGA 中,水平同步脈沖在光柵掃描 線(xiàn)需要回到水平開(kāi)始位置也就是屏幕的左邊的時(shí)候插入,垂直同步脈沖在光柵掃描線(xiàn)需要回到垂直開(kāi)始位置也就是屏幕的上方的時(shí)候插入。復合同步脈沖是水平同步脈沖與垂直同步信號的組合。RGB 為像素數據,在沒(méi)有圖像投射到屏幕時(shí)插入消隱信號,當消隱有效時(shí),RGB 信號無(wú)效。 水平時(shí)序 在水平時(shí)序中,包括以下幾個(gè)時(shí)序參數:水平同步脈沖寬度;水平同步脈沖結束到水平門(mén)的開(kāi)始之間的寬度;一個(gè)視頻行可視區域的寬度;一個(gè)完整的視頻行的寬度,從水平同步脈沖的開(kāi)始到下一個(gè)水平同步脈沖的開(kāi)始。 垂直時(shí)序 在垂直時(shí)序與水平時(shí)序類(lèi)似,包括以下幾個(gè)不同的時(shí)序參數:垂直同步脈沖寬度; 垂直同步結束到垂直門(mén)的開(kāi)始之間的寬度; 一個(gè)視頻幀可是區域的寬度;一個(gè)完整視頻幀的寬度,從垂直同步脈沖到下一個(gè)垂直同步脈沖的開(kāi)始。 組合視頻幀時(shí)序 視頻幀由 vlen 個(gè)視頻行組成,每一行由 hlen 個(gè)像素,水平門(mén)與垂直門(mén)的“與”函數 即為可是區域,圖像的其他區域為消隱區。 目前存在很多種不同VGA 模式,以下就常見(jiàn)的各種模式種參數進(jìn)行說(shuō)明,給出 VGA 模式中各種時(shí)序參數可以參考。 表 1 水平時(shí)序 說(shuō)明:有效時(shí)間包括 6 列過(guò)掃描邊界列,有些時(shí)序表將這幾列加在后沿和前沿中 表 2 垂直時(shí)序 說(shuō)明:有效時(shí)間包括 4 行過(guò)掃描邊界行,有些時(shí)序表中將這幾行加在后沿和前沿中。 *當有效時(shí)間增加時(shí),它超過(guò)了 vsync 信號的上升沿,因此前沿為-1 在實(shí)際設計中如何通過(guò)不同的系統頻率確定適當的顯示模式 ? 例如在 RhicSP2200 開(kāi)發(fā)板中FPGA 的系統時(shí)鐘頻率為 50MHz。這個(gè)時(shí)鐘頻率可以用來(lái)設計 顯示 800X600 模式,為了顯示器顯示效果好,采用場(chǎng)頻(刷新頻率)75Hz,那么幀長(cháng)可以確定為 666,而行總長(cháng)設計為 1000 像素。 根據以上所述,我們可以設計如Examples1類(lèi)似HDL代碼,使用這段代碼在Valid 有效期間對RGB 中 Blue 兩位賦值1,得到一個(gè)藍色屏幕顯示邊界如圖1 所示。 色彩原理 RGB 色彩模式是工業(yè)界的一種顏色標準,是通過(guò)對紅(R)、綠(G)、藍(B)三個(gè)顏色 通道的變化以及它們相互之間的疊加來(lái)得到各式各樣的顏色的,RGB 即是代表紅、 綠、藍三個(gè)通道的顏色,通過(guò)三種基本顏色亮度值從 0"255 不同產(chǎn)生出其他各種顏色,這種模式叫加色模式。為什么叫加色模式呢,舉個(gè)例子,通常使用的電視屏幕和電腦 屏幕上的顯示就是這樣的模式,在沒(méi)有圖象時(shí),屏幕是黑的,若R,G,B 三色亮度都為255 時(shí)混合疊加打在屏幕上時(shí)則顯示成白色。就是加起來(lái)是白色的意思,叫加色模式。這個(gè)標準幾乎包括了人類(lèi)視力所能感知的所有顏色,是目前運用最廣的顏色系統之 一。 而與我們電腦相關(guān)的地方,就是目前的顯示器大都是采用了 RGB 顏色標準,這就是為什么它對我們來(lái)說(shuō)這么重要了。 在顯示器上,是通過(guò)電子槍打在屏幕的紅、綠、藍三色發(fā)光極上來(lái)產(chǎn)生色彩的,目前的電腦一般都能顯示 32 位顏色,約有一百萬(wàn)種以上的顏色。如果說(shuō)它所顯示的顏色 還不能完全吻合自然界中的某種色彩的話(huà),那已經(jīng)幾乎是我們肉眼所不能分辯出來(lái)的了。 而 RhicSP2200 開(kāi)發(fā)板系統中每一個(gè)色 彩都是使 用 2bit 來(lái) 表示的,因 此可見(jiàn) RhicSP2200 系統可以出現64 種不同的顏 色。其他色彩的使用請在實(shí)際工作中更多的加以體會(huì )。 顯示 通過(guò)以上的講述,已經(jīng)可以在計算機顯示器上顯示一個(gè)有顏色的區域了,在這個(gè)小節中我們再舉一個(gè)簡(jiǎn)單的例子,在顯示器中顯示兩個(gè)鑲嵌的正方形,字符等顯示與其類(lèi)似,可以參考瑞芯科技其他設計示例。 例如我們可以在 xpos 與 ypos 的某一區間給 RGB 信號賦不同的值將得到如圖2 所示的顯示效果。 例子 1:使用 50MHz 時(shí)鐘頻率產(chǎn)生的 VGA 同步脈沖以及視頻有效信號 module sync_gen_50m( rst_n,// synthesis attribute clock_buffer of rst_n is ibufg; clk, hsync, vsync, valid, x_cnt, y_cnt ); input rst_n ; input clk ; output hsync ; output vsync ; output valid ; output [9:0] x_cnt ; output [9:0] y_cnt ; reg hsync ; reg vsync ; reg valid ; reg [9:0] x_cnt ; reg [9:0] y_cnt ; always @ ( posedge clkornegedge rst_n ) if ( !rst_n ) x_cnt <= 10'd0; else if ( x_cnt == 10'd1000 ) x_cnt <= 10'd0; else x_cnt <= x_cnt + 1'b1; always @ ( posedge clkornegedge rst_n ) if ( !rst_n ) y_cnt <= 10'd0; else if ( y_cnt == 10'd665 ) y_cnt <= 10'd0; else if ( x_cnt == 10'd1000 ) y_cnt <= y_cnt + 1'b1; always @ ( posedge clkornegedge rst_n ) if ( !rst_n ) begin hsync <= 1'b0; vsync <= 1'b0; end else begin hsync <= x_cnt <= 10'd50; vsync <= y_cnt <= 10'd6; end always @ ( posedge clkornegedge rst_n ) if ( !rst_n ) valid <= 1'b0; else valid <= ( ( x_cnt > 10'd180 ) && ( x_cnt < 10'd980) && ( y_cnt > 10'd35) && ( y_cnt < 10'd635) ); endmodule |