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