當前位置:學問君>學習教育>畢業論文>

淺論FPGA的VGA漢字顯示系統設計與實現

學問君 人氣:2.55W

摘要:提出一種基於Xilinx公司的Spartan一3E的FPGA顯示方案,由於FPGA芯片具有可靠性高、編程靈活、體積小等優點,採用其控制 VGA接口進行漢字顯示,有效地解決了通用處理器控制VGA接口顯示漢字的缺點。對新方案進行理論分析和實驗,結果證明該方案達到了預期效果。

淺論FPGA的VGA漢字顯示系統設計與實現

關鍵詞:顯示繪圖陳列;現場可編程門陳列;VGA漢字顯示

隨着科技的發展,VGA漢字顯示系統的應用範圍越來越廣泛,傳統的VGA字元顯示方案是透過通用處理器控制VGA接口顯示字元資訊的,這種顯示方案是以通用處理器爲核心的處理系統,整個系統體積大、可靠性不高且靈活性差,不適合便攜設備的設計。而FPGA芯片具有可靠性高、編程靈活和體積小等特點,因此用FPGA技術來實現VGA漢字顯示可以有效解決傳統技術中的缺點。

FPGA管腳資源豐富,執行速度快,可以實現大規模的系統設計,而且由於FPGA具有可重構能力和抗干擾能力強等優點,使其越來越多地應用於工業控制領域。利用FPGA控制VGA顯示漢字,可使漢字顯示脫離Pc機的控制,構建體積小、功耗低的各種嵌入式系統,可應用在人機介面、地面勘測、電子設備、智能儀表和性能監測等方面。

1、VGA漢字顯示

VGA的漢字顯示是利用VGA的顯示原理,使用正確的時序信號對VGA接口相應管腳進行控制輸出RGB顏色資訊來顯示相應的字元資訊,其中VGA顯示原理及時序信號的控制必須遵循VGA的工業標準。顯示處理前端中的SRAM中存儲的每一位數據對應相應LCD顯示屏上一個像素點的亮和滅,“1”表示亮,“0”表示滅。在顯示設備上顯示漢字也就是按照漢字的點陣圖向顯示器上輸出1或0的高低電平,從而在顯示器上顯示出具體的漢字 。

2、VGA顯示控制器的FPGA實現

FPGA芯片作爲中央控制器控制整個系統的處理,根據自頂向下的設計流程,按照層次化、結構化的設計方法可以將FPGA系統劃分爲以下幾個模組:頂層模組、分頻模組、VGA控制模組、存儲功能模組和RAM讀取控制模組。系統工作原理:系統加電FPGA芯片讀人配置資訊,配置完成後,FPGA進人工作狀態 ,將要顯示的漢字的字模資訊初始化到單口RAM 中,由系統時鐘產生時序,程序根據時序資訊控制VGA接口輸出行、場同步及顏色資訊到顯示器上。

2.1 頂層模組

根據自頂向下設計方法,首先定義頂層功能塊 。頂層模組處於重要的位置,定義好頂層模組功能後,才能進而分析哪些是構成頂層模組必要的子模組,然後進一步對各個子模組進行分解,直到達到無法進一步分解的底層功能塊。頂層模組主要負責規定各個模組之間的數據信號和控制信號的`連接關係,也就是實例化各子模組,並且接收RAM讀取控制模組傳來的漢字字模資訊數據流,根據數據流資訊中比特位爲1的位賦予紅色,爲0的位賦予藍色,即用紅色表示漢字,用藍色來填充背景。

2.2 分頻模組

時序的驅動是設計VGA顯示的控制需要注意的一個重要問題,這也是實驗是否成功的關鍵設計。時序不正確,必定不能正常顯示,有時甚至會損壞顯示設備。因此,對於時序的設計我們必須遵循VGA的工業標準,在設計中使用的分辨率爲640×480,根據VGA的工業標準,其像素的重新載入率爲25 MHz。

而實驗採用的實驗板提供的時鐘頻率爲50 MHz,因此必須將系統進行分頻設計,即進行二分頻的設計。50 MHz的時鐘頻率經過分頻後得到實驗所需的25MHz頻率,此頻率將作爲頂層控制模組,VGA控制模組和RA M讀取控制模組的系統時鐘。

2.3 VGA控制模組

VGA信號的電平驅動是設計VGA顯示的控制需要注意的另一個重要問題,這是正確顯示文字圖像的重要設計,如果設計不當,那麼在顯示器上就不能正確顯示文字圖像。這個模組主要是根據VGA的工業標準進行設計的,用verilog語言將工業標準用程序表示出來。

VGA時序信號產生包括行點計數器x—cnt(計數個數用 表示)、場點計數器y_cnt(計數個數用rt 表示)、行同步信號hsync、場同步信號vsync、有效顯示區Visible area等。其中行點計數器是800進制計數器,場點計數器是525進制計數器。根據VGA時序的工業標準行、場同步信號有4種狀態:同步脈衝信號 (Sync),顯示後沿信號(Back Porch),可視顯示區(Visible area),顯示前沿(Front Porch)。

這4種狀態具有很清晰的時序規律,可以用有限狀態機來實現這4種狀態的轉換,用h_state來表示行同步狀態機的4種狀態:h_sync,h_back,h_visible,h_front;v_ state來表示場同步狀態機的4種狀態:v—sync,v_back,v_ visible,v_ front。行、場計數器的值決定了狀態機在何時進行狀態翻轉。

行狀態機復位時,進入行同步狀態h_sync,此時行同步信號輸出低電平;當行計數器的計數值達到96時,狀態機翻轉進人行消隱後沿h_back狀態,此時仍爲消隱階段;當行計數器的計數值達到144時,狀態機翻轉進入h_visible狀態,它對應每行的有效顯示區域,共包含640點,在此區域以外的任何部分都不被顯示;當行計數器的計數值達到784時,狀態機進入行消隱前沿h_front狀態,此時處於消隱階段。當行計數器計數值達到799時,行狀態機進入h_sync狀態,同時行計數器的復位信號爲高電平,計數器復位。

與行有限狀態機狀態轉移類似,需要注意的是行掃描是從左到右地掃描顯示,而場掃描是自上而下地掃描顯示,顯示區域中行與場確定的一個座標位置爲一個像素點,並且只有在行、場狀態都爲有效可視狀態(h_visibl~=1且v—visible=1)時,即行有效顯示區域和場有效顯示區域的邏輯與值爲1 時,才能在顯示設備上顯示。行、場消隱信號的邏輯與爲複合消隱信號 ,處於複合消隱階段的信號不能在顯示設備上顯示 。

2.4 存儲功能模組

存儲功能模組的主要功能是存儲文字資訊,其存儲媒介爲FPGA內部的硬核塊RAM,塊RAM是以硬核的方式內嵌到FPGA芯片中的,不佔用芯片的邏輯資源,是FPGA芯片內部的一種寶貴資源。FPGA內嵌的塊RAM組件可配置爲單口RAM、雙口RAM、分佈式ROM、塊ROM、內容地址存儲器CAM和先進先出存儲器FIFO等存儲結構 J。

本文中所做實驗只進行文字顯示,所以可以使用單口RAM存儲文字資訊,如果想實現更復雜的設計如:文字的滾動顯示、圖片的動畫顯示等可以使用雙口RA M進行設計。實驗使用開發軟件XinlinxISE中的IP核生成工具CORE Generator生成實驗用的單口RAM,並將其要顯示的文字資訊初始化到RAM中。實驗設定顯示7個漢字,每個漢字爲16×16點陣,所以RAM的數據深度爲l6,數據寬度爲112。在工程項目裏利用IP核生成工具生成單口RAM,在生成過程中把RAM的數據深度、寬度設定正確,並把事先做好的檔案即漢字的字模資訊初始化到RAM中。