摘 要:VGA 作為一種標準的顯示接口得到廣泛的應(yīng)用。依據(jù)VGA 顯示的原理,提出了一種基于Nios Ⅱ處理器的VGA 時序彩條信號顯示的實現(xiàn)方法。利用FPGA 產(chǎn)生VGA 時序信號,Nios Ⅱ處理器控制輸出彩條的顏色,按鍵控制彩條的輸出模式,將要顯示信號的數(shù)據(jù)直接送到顯示器,這樣就加快了數(shù)據(jù)處理速度,節(jié)約了硬件成本。
關(guān)鍵詞: FPGA ;Nios Ⅱ;VGA ;彩條信號
1 引 言
Altera 開發(fā)了整套工具(包括SOPC Builder ,Nios Ⅱ集成設(shè)計環(huán)境和Quartus Ⅱ開發(fā)軟件) 幫助用戶加速硬件和軟件的開發(fā),實現(xiàn)完整的基于可編程邏輯的SOPC 解決方案。SOPC Builder 是在Altera FPGA 中實施IP 的關(guān)鍵工具。該系統(tǒng)級工具使用Altera 的MegaWizard 技術(shù)自動生成AvalON 的交換架構(gòu),將設(shè)計中的不同功能模塊連接在一起。SOPC Builder 還會生成定制軟件開發(fā)工具,根據(jù)需要為由Nios Ⅱ處理器控制的功能模塊提供合適的軟件頭文件。Nios Ⅱ IDE 是Nios Ⅱ軟核處理器的主要開發(fā)工具。他為軟件開發(fā)提供了一個集成的設(shè)計開發(fā)環(huán)境,包括一個具有工程管理、源代碼開發(fā)、基于J TAG 調(diào)試功能的圖形用戶界面( GUI) ,大大簡化了大量復(fù)雜的NiosⅡ處理器設(shè)計。業(yè)內(nèi)領(lǐng)先的Quartus Ⅱ軟件為硬件開發(fā)提供了設(shè)計采集、綜合、仿真和布局布線功能。Quartus Ⅱ軟件是最具成本效益的FPGA 開發(fā)套件。
本VGA 輸出顯示實例采用Altera DE2 嵌入式系統(tǒng)開發(fā)板,實現(xiàn)了嵌入式VGA 彩條輸出顯示。
2 VGA 信號時序
3 硬件設(shè)計與實現(xiàn)
3. 1 Nios Ⅱ嵌入式軟核處理器簡介
Nios Ⅱ嵌入式處理器是Altera 公司于2004 年6 月推出的第二代用于可編程邏輯器件的可配置的軟核處理器,在CycloneII 器件下,性能最高可達56 DMIPS。Nios Ⅱ是基于哈佛結(jié)構(gòu)的RISC 通用嵌入式處理器軟核,能與用戶邏輯相結(jié)合, 編程至Altera 的FPGA 中。處理器具有32 位指令集,32 位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖。他特別為可編程邏輯進行了優(yōu)化設(shè)計,也為可編程單芯片系統(tǒng)(SOPC) 設(shè)計了一套綜合解決方案。Nios Ⅱ處理器系列包括3 種內(nèi)核:高性能的快速內(nèi)核(Nios Ⅱ/ f ) ;低成本經(jīng)濟型內(nèi)核(Nios Ⅱ/ e) ;性能/ 成本折中的標準內(nèi)核(Nios Ⅱ/ s) ,是前2 種的平衡。本系統(tǒng)采用經(jīng)濟型內(nèi)核。
3. 2 系統(tǒng)的硬件平臺
系統(tǒng)的硬件結(jié)構(gòu)如圖2 所示。
圖1 所示是計算機VGA(640 ×480 ,60 Hz) 圖像格式的信號時序圖, 其點時鐘DCLK 為251175 MHz , 場頻為59194 Hz。圖中, Vsync 為場同步信號, 場周期TVsync 為161683 ms ,每場有525 行,其中480 行為有效顯示行,45 行為場消隱期。場同步信號Vsync 每場有一個脈沖,該脈沖的低電平寬度twv為63μs (2 行) 。場消隱期包括場同步時間twv 、場消隱前肩tHV (13 行) 、場消隱后肩tVH (30 行) ,共45 行。
行周期THsync為31178μs ,每顯示行包括800 點,其中640 點為有效顯示區(qū),160 點為行消隱期(非顯示區(qū)) 。行同步信號Hsync 每行有一個脈沖,該脈沖的低電平寬度tWH為3181 μs (即96 個DCL K) ;行消隱期包括行同步時間tWH ,行消隱前肩tHC (19 個DCL K) 和行消隱后肩tCH(45 個DCL K) ,共160 個點時鐘。復(fù)合消隱信號是行消隱信號和場消隱信號的邏輯與,在有效顯示期復(fù)合消隱信號為高電平,在非顯示區(qū)域是低電平。
本系統(tǒng)的硬件平臺主要是在terasic 公司的AlteraDE2 開發(fā)板上實現(xiàn),選用Altera 的Cyclone Ⅱ版本的NiosⅡ開發(fā)套件,包括Nios Ⅱ處理器、標準外圍設(shè)備庫、集成了SOPC Builder 系統(tǒng)設(shè)計工具的Quartus Ⅱ開發(fā)軟件等。
系統(tǒng)的主要組件有Nios Ⅱ的經(jīng)濟型內(nèi)核、片內(nèi)存儲器、定時器、VGA 控制器、LCD 控制器等,都集成在一塊Altera的Cyclone II FPGA 芯片上,使用SOPC Builder 來配置生成片上系統(tǒng)。SOPC Builder 自動產(chǎn)生每個模塊的HDL 文件,同時自動產(chǎn)生一些必要的仲裁邏輯來協(xié)調(diào)系統(tǒng)中各部件的工作。
3. 3 V GA 時序信號的產(chǎn)生
系統(tǒng)中最重要的部分是VGA 時序的產(chǎn)生,是正常輸出顯示的關(guān)鍵,他包含在VGA 控制器中。VGA 控制器是用SOPC Builder 中的interface to user logic 生成的,首先用硬件描述語言定義一個時序輸出和RGB 信號輸出模塊,點時鐘251175 MHz 由開發(fā)板提供的27 MHz 的時鐘經(jīng)鎖相環(huán)分頻產(chǎn)生,鎖相環(huán)是通過MegWizard 工具加入系統(tǒng)的。他實現(xiàn)了VGA 輸出所需的點時鐘、復(fù)合同步控制信號、復(fù)合消隱控制信號、行同步和場同步信號。同時,他完成了從寄存器內(nèi)讀取輸出顯示命令及彩條顏色值,并根據(jù)按鍵計數(shù)判斷顯示彩條的類型,包括橫彩條、豎彩條及網(wǎng)格。其中點時鐘、復(fù)合同步控制信號、復(fù)合消隱控制信號和RGB 數(shù)字信號輸入給ADV7123 ,行同步、場同步和由ADV7123 轉(zhuǎn)換輸出的RGB 模擬信號輸入給VGA顯示器。另外,還要用硬件描述語言實現(xiàn)對寄存器的讀寫,以使VGA 控制器端口符合Avalon 接口規(guī)范。
VGA 時序信號產(chǎn)生模塊包括行點數(shù)計數(shù)器HCont 、場點數(shù)計數(shù)器V Cont ,行點數(shù)計數(shù)器是800 進制計數(shù)器,場行數(shù)計數(shù)器是525 進制計數(shù)器,由圖1 知行同步信號、場同步信號的電平只有2 種,分別在行同步時間和場同步時間為低電平,其余時間均為高電平,故可以忽略行/ 場消隱前肩、后肩狀態(tài)而只考慮其輸出電平的高低。
行計數(shù)器H Cont 對251175 MHz 的點時鐘進行計數(shù),當行計數(shù)器H Cont 的計數(shù)值小于96 時, 行同步信號Hsync 輸出為低電平;當H Cont 的計數(shù)值達到96 后,行同步信號Hsync 輸出為高電平;當H Cont 的計數(shù)值達到799 時,將H Cont 置0 ,同時使行同步信號Hsync 輸出轉(zhuǎn)換為高電平。場計數(shù)器V Cont 對H Cont 為0 值進行計數(shù),當場計數(shù)器V Cont 的計數(shù)值小于2 時,場同步信號Vsync 輸出為低電平;當場計數(shù)器V Cont 的計數(shù)值達到2 以后,場同步信號Vsync 輸出為高電平; 當VCont 的計數(shù)值達到524 時,將V Cont 置0 ,同時使場同步信號Vsync 輸出轉(zhuǎn)換為低電平。
復(fù)合消隱控制信號是行消隱信號和場消隱信號的邏輯與,在有效顯示期復(fù)合消隱信號為高電平,在非顯示區(qū)域是低電平;復(fù)合同步控制信號在此系統(tǒng)中始終為0 。
3. 4 RGB 信號的數(shù)模轉(zhuǎn)換
本系統(tǒng)采用ADV7123 實現(xiàn)由VGA 控制器輸出的RGB 信號的數(shù)模轉(zhuǎn)換。ADV7123 是一個3 路高速的在一個芯片上實現(xiàn)的數(shù)模轉(zhuǎn)換器。他包含3 路高速的10 位視頻D/ A 補償輸出轉(zhuǎn)換器,標準TTL 輸入接口和高阻模擬電流輸出。ADV7123 有3 路分開的寬度為10 位輸入端口,30 位象素數(shù)據(jù)在每個時鐘周期上升沿送到器件,然后轉(zhuǎn)換成模擬信號輸出。ADV7123 還有附加的視頻控制信號,復(fù)合同步控制信號SYNC 和復(fù)合消隱控制信號BLAN K,他們在點時鐘CLOCK 的上升沿有效以保證象素數(shù)據(jù)流的同步。
圖3 為ADV7123 的視頻數(shù)據(jù)輸入/ 輸出時序圖。
4 系統(tǒng)的軟件設(shè)計與實現(xiàn)
系統(tǒng)的軟件流程圖如圖4 所示。
在硬件設(shè)計中定義好一個3 位的控制寄存器和8 個10 位的顏色值寄存器,控制寄存器主要控制3 種顏色信號的使能,顏色值寄存器存儲輸出彩條的顏色值,每種彩條可以輸出8 個不同顏色。在軟件中定義一個三進制按鍵計數(shù)器。
系統(tǒng)軟件主要是通過對片內(nèi)寄存器的讀寫實現(xiàn)對VGA 的控制,包括顏色使能的控制、輸出彩條的顏色的控制。
5 結(jié) 語
本文提出了一種基于Nios Ⅱ嵌入式處理器軟核的VGA 彩條輸出顯示系統(tǒng)實現(xiàn)方法。使用Altera 的Cy2clone II FPGA 控制VGA 時序,穩(wěn)定可靠且具有開發(fā)周期短、成本低等特點。使用Nios Ⅱ處理器控制彩條輸出方便,易于理解。