燕衛
【摘要】本文介紹了如何依據VGA工業標準及VGA接口的功能,確定控制器輸入輸出信號的時序邏輯及控制器的組成構件,進而利用高效的EDA軟硬件開發平臺,在可編程邏輯器件FPGA_E定制VGA圖形控制器。
【關鍵詞】VGA接口標準、嵌入式視頻系統、SOPC
【中圖分類號】TP391.41;TP277 【文獻標識碼】A 【文章編號】1672-5158(2013)04-0067-01
一、SOPC方案論證
SOPC是PLD和ASIC技術融合的結果,目前0.13微米的ASIC產品制造價格仍然相當昂貴,相反,集成了硬核或軟核CPU、DSP、存儲器、外圍I/O及可編程邏輯的SOPC芯片在應用的靈活性和價格上有極大的優勢。SOPC被稱為“半導體產業的未來”。SOPC是一種特殊的嵌入式系統:首先它是片上系統(SOC),即由單個芯片完成整個系統的主要邏輯功能;其次,它是可編程系統,具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統可編程的功能。
常見的EDA軟件有ORCAD、Multisim、PROTEL、Quaaus、Matlab等,本文使用的軟件平臺是美國Altera公司Quartus Ⅱ,它是單芯片可編程系統( SOPC)設計的綜合性環境,擁有FPGA和CPLD設計的所有階段的解決方案,能夠完成所有的軟件流程。
本文使用的硬件開發板是Altera的UP3板,得益于強大的硬件開發板,設計過程基本不需要進行硬件制作,該板擁有的FPGA(EPlC3)、VGA接口插件、FlashROM、EEPROM等硬件資源,對加快設計進度有很大的幫助。
二、VGA圖形控制器的設計與驗證
隨著全球化的加速,當前的電子產品已經日趨標準化,放棄標準等于放棄市場。因此,從技術標準人手進行設計已經成為新時期電子設計的必然途徑。
(一)VGA圖形控制器的整體設計
VGA圖形控制器是一個較大的數字系統。采用模塊化設計原則,借鑒自頂向下的程序設計思想,進行功能分離并按層次設計。利用VHDL硬件描述語言逐一對每個功能模塊進行描述,并逐個通過編譯仿真。使頂層VGA圖形控制器的模塊實體仿真綜合得以順利通過。VGA控制器主要由以下模塊組成:VGA時序控制模塊,分頻模塊、圖像控制模塊、ROM讀取模塊等。
模塊其實就是一個個能夠獨立實現某種功能的子電路,與傳統意義上的電路不同的是,可編程邏輯器件中的模塊都是通過VHDL等硬件描述語言來完成功能設計。這種設計方法的最大的好處是易于修改,避免了傳統電路改進過程中需要克服的硬件更改問題,提高了設計效率。
(二)VGA控制器的時序控制器的設計
根據VGA工業標準,VGA控制器輸出信號主要有三組:HS、VS、RGB,輸入信號主要兩組:CLK、DATA
根據VGA行掃描時序要求,控制器需要一個行脈沖計數器(輸入接CLK,初值為0,計數值高于800時進位)和一個水平同步脈沖發生器(在行脈沖計數器數值高于656且低于752時,輸出一個低電平)。
根據VGA場掃描時序要求,控制器需要一個場脈沖計數器(輸入接行脈沖計數器的進位端,初值為0,計數值高于525時進位)和一個垂直同步脈沖發生器(在場脈沖計數器數值高于490且低于492時,輸出一個低電平)。
根據VGA工業標準對圖像分辨率和消隱信號的要求,控制器需要一個圖像輸出使能控制器(在行脈沖計數器數值低于640且場脈沖計數器數值低于480時,把DATA圖像信號輸出到RGB端)和一個消隱控制器(在行脈沖計數器數值高于于640或場脈沖計數器數值高于480時,把數值0賦到RGB端)。把以上思路用VHDL語言描述出來,輸入到QuartusⅡ的文本編輯器中,編譯無誤后,就完成了對VGA時序控制器的初步設計。
行脈沖計數器及HS行同步脈沖產生模塊的驗證,行脈沖HS(hsyne)結束時間為30.29us,加上行同步頭Tb的40個周期(約1.6us),可知仿真所得的行周期為31.89us,由于輸入CLK信號為25MHZ低于標準的25.175MHZ,因此它比標準的行周期31.78us略長是正確的,此外HS的脈沖寬度也在3.8us左右(標準為3.81us),可見本模塊時序仿真驗證正確的。
場脈沖計數器及VS場同步脈沖產生模塊的驗證,行脈沖VS(vsyne)結束時間為15.75ms,加上場同步頭Tb的25個周期(約為0.8ms),可知仿真所得的行周期為16.55ms,和標準的16.688ms誤差在正常范圍的,此外VS的脈沖寬度也在0.06ms左右(標準為63us),可見本模塊時序仿真驗證是正確的。
控制器能夠將信號pax val延遲少許時間送到RGB端證明,該模塊時序仿真驗證是正確的。
(三)ROM讀取控制模塊
ROM讀取控制模塊是VGA彩色顯示器和存儲圖像數據的ROM之間的通道。為了保證VGA顯示器能夠準確的顯示圖像,必須嚴格按照顯示器的掃描規律,在ROM中逐個字節的存儲對應像素點的顏色數據,并通過RGB信號線把顏色數據輸入VGA顯示器,從而得到ROM中存儲的圖像信息,在顯示器上顯示出完整的一幅圖像。
此模塊的設計關鍵在于產生與各個像素點對應的ROM的地址信號。利用類似于橫坐標與縱坐標定位的方式,可以分別得到高9位和低10位地址信號,最終結合為19位的地址信號。可以實現橫坐標不大于640,縱坐標不大于480的像素點的定位,并得到ROM中相對應地址的顏色數據。
(四)VGA彩色信號生成模塊
通過一個4進制計數器mode對該輸入進行計數,每當按鈕被按下一次,計數器mode的值就加1。而計數器mode的值又決定著輸出的彩條信號的類型,當mode為0時,輸出的彩條為豎彩條;當mode為1時,輸出橫彩條;當mode為2時,輸出棋盤格彩條;當mode為3時,輸出“全黑”信號;當mode為4時,輸出“全白”信號,以此類推,共顯示11種模式。
(五)刷新率調節模塊的設計
VGA 9業標準的分辨率為640×480,刷新率為60HZ,這無法滿足用戶對顯示畫面的要求,要解決這一問題,必須提高VGA控制器的象素輸出頻率(即點頻),使VGA控制器描述一個點所花費的時間更短,進而在同一時間內描述更大的信息量(即更高的分辨率)和更多幅的畫面(即更高的刷新率)。
FPGA器件CycloneEPIC3內部擁有PLL鎖相環,可以通過QuartusⅡ的Mega Wizard功能模塊生成,這樣就可以在FPGA器件內部建立一個倍頻器(由于器件限制,最高倍頻輸出頻率為450MHZ),如果在這個倍頻器輸出端接上一個數控分頻模塊,那么我們就可以控制VGA接口的象素輸出頻率了,這樣就可以實現更高的分辨率和刷新率了。
經過實驗論證,基于FPGA的VGA圖形控制系統已基本達到設計要求,可實現彩條、全黑、全白、全紅、變分辨率、刷新率的圖形顯示,并可實現FPGA器件對顯示器的單片控制。已順利建立基于FPGA的VGA圖形控制系統與VGA接口之間的通信通道,在此基礎上,可進一步實現對其它顯示系統的控制。