基于NiosII的圖形用戶接口的設(shè)計(jì)
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)主要由以下4部分組成:(1)VGA控制器、SDRAM控制器、SRAM控制器等外設(shè)接口的設(shè)計(jì)。(2)Nios II軟核SOPC系統(tǒng)的配置。(3)Nios II處理器與外設(shè)模塊的融合。(4)GUI函數(shù)庫的建立。系統(tǒng)主要分為硬件和軟件兩部分,部分硬件采用DE2上的硬件電路,其中有些電路的控制器采用硬件描述語言生成;軟件則采用Nios II編譯器書寫。
2 VGA時(shí)序控制模塊設(shè)計(jì)
由于要實(shí)現(xiàn)VGA的實(shí)時(shí)顯示,便需要給VGA一個(gè)顯存,使得VGA顯示的信息能夠緩存和切換。出于速度的考慮,顯存模塊的讀寫速度要求較高,否則會(huì)出現(xiàn)卡殼現(xiàn)象??刹捎玫拇鎯?chǔ)器分別有Flash,SRAM,SDRAM,其中SRAM的速度較快,可以選用。是一種具有靜止存取功能的內(nèi)存,無需刷新電路即能保存其內(nèi)部存儲(chǔ)的數(shù)據(jù),具有較好的存儲(chǔ)性能。
常見的VGA彩色顯示器,通常由CRT(陰極射線管)構(gòu)成。彩色由紅、綠、藍(lán)三基色構(gòu)組成。顯示是用逐行掃描的方式解決,一般把要顯示的數(shù)據(jù)存放于存儲(chǔ)器單,如果要把存儲(chǔ)器里的圖像顯示在VGA顯示器上,以640×480,59.94 Hz(60 Hz)為例。具體行場同步時(shí)序要求如圖1所示。
根據(jù)上述的時(shí)序參數(shù)以及目標(biāo)板上的時(shí)鐘頻率,對(duì)其行頻和場頻的時(shí)序控制采用點(diǎn)和行計(jì)數(shù)的方法,場信號(hào)和行信號(hào)按照時(shí)序圖設(shè)計(jì),當(dāng)像素或行數(shù)達(dá)到相應(yīng)的狀態(tài)后即改變場信號(hào)和行信號(hào)的值。系統(tǒng)所需的像素時(shí)鐘可以用鎖相環(huán)實(shí)現(xiàn)。
3 VGA數(shù)據(jù)緩存模塊設(shè)計(jì)
數(shù)據(jù)緩存模塊式通過Altera提供的SOPC工具中,Avalon總線上掛的一個(gè)SRAM控制器來實(shí)現(xiàn)數(shù)據(jù)的讀寫功能,Avalon總線與SRAM的接口對(duì)用戶是透明的。只需編寫Avalon主端口模塊,用于控制Avalon總線的主端口信號(hào),從而實(shí)現(xiàn)數(shù)據(jù)的讀寫。Avalon總線同時(shí)被2個(gè)主外設(shè)共同使用,Nios II處理器將需要顯示的數(shù)據(jù)通過主端口寫入到SRAM,VGA顯示模塊通過主端口將數(shù)據(jù)從SRAM中讀出到VGA接口顯示器上顯示。當(dāng)系統(tǒng)中存在多個(gè)主外設(shè)時(shí),SOPC系統(tǒng)會(huì)自動(dòng)進(jìn)行總線仲裁,產(chǎn)生一個(gè)優(yōu)先級(jí),控制對(duì)Avalon總線的使用情況。
當(dāng)某主外設(shè)要發(fā)起總線請(qǐng)求時(shí),可能Avalon總線不能馬上作出響應(yīng)而處于等待狀態(tài)。Nios II處理器將準(zhǔn)備顯示的數(shù)據(jù)發(fā)送后要求立即存入到存儲(chǔ)器中,否則到下一個(gè)周期數(shù)據(jù)將會(huì)更新,從而導(dǎo)致數(shù)據(jù)丟失,此時(shí)Avalon總線需將信號(hào)設(shè)置為等待狀態(tài)。因此必須將數(shù)據(jù)暫時(shí)存儲(chǔ)在緩沖區(qū)中,待Avalon總線響應(yīng)寫傳輸時(shí)再將其從緩沖區(qū)中讀出寫入到存儲(chǔ)器中。用一個(gè)先進(jìn)先出的FIFO作為緩沖器能夠滿足以上條件,通過時(shí)鐘來控制FIFO的寫入和讀出。
4 結(jié)束語
試驗(yàn)結(jié)果證明,運(yùn)行在FPGA中的SOPC系統(tǒng)可以控制VGA顯示器,并將VGA成功驅(qū)動(dòng),而且能夠進(jìn)行畫點(diǎn)、畫線、畫矩形、畫圓以及16×16漢字和8×16 ASCII字符混排的顯示,同時(shí)達(dá)到了圖像的彩色顯示要求。
評(píng)論