基于NiosII的圖形用戶接口的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 采用SOPC可編程片上系統(tǒng)技術(shù),將NiosII32位處理器軟核嵌入到FPGA現(xiàn)場可編程門陣列中。通過VGA顯示控制模塊,構(gòu)建VGA顯示系統(tǒng),該系統(tǒng)具有體積小、功耗低、可靠性強(qiáng)等特點(diǎn)。同時(shí),通過軟硬件結(jié)合設(shè)計(jì),使得系統(tǒng)更有利于修改和重復(fù)使用。
關(guān)鍵詞 SOPC;VGA控制;NiosII;FPGA
隨著大規(guī)模集成電路技術(shù)的不斷發(fā)展,嵌入式計(jì)算機(jī)系統(tǒng)開始從MCU逐步過渡到SOC的新階段。SOPC是一種靈活、高效的SOC解決方案。其集成了處理器、存儲器、各種外圍設(shè)備等系統(tǒng)設(shè)計(jì)需要的部件,構(gòu)建成一個(gè)可編程的片上系統(tǒng),設(shè)計(jì)方式靈活,可裁減、可擴(kuò)充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。
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顯示的信息能夠緩存和切換。出于速度的考慮,顯存模塊的讀寫速度要求較高,否則會出現(xiàn)卡殼現(xiàn)象??刹捎玫拇鎯ζ鞣謩e有Flash,SRAM,SDRAM,其中SRAM的速度較快,可以選用。是一種具有靜止存取功能的內(nèi)存,無需刷新電路即能保存其內(nèi)部存儲的數(shù)據(jù),具有較好的存儲性能。
常見的VGA彩色顯示器,通常由CRT(陰極射線管)構(gòu)成。彩色由紅、綠、藍(lán)三基色構(gòu)組成。顯示是用逐行掃描的方式解決,一般把要顯示的數(shù)據(jù)存放于存儲器單,如果要把存儲器里的圖像顯示在VGA顯示器上,以640×480,59.94 Hz(60 Hz)為例。具體行場同步時(shí)序要求如圖1所示。
根據(jù)上述的時(shí)序參數(shù)以及目標(biāo)板上的時(shí)鐘頻率,對其行頻和場頻的時(shí)序控制采用點(diǎn)和行計(jì)數(shù)的方法,場信號和行信號按照時(shí)序圖設(shè)計(jì),當(dāng)像素或行數(shù)達(dá)到相應(yīng)的狀態(tài)后即改變場信號和行信號的值。系統(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的接口對用戶是透明的。只需編寫Avalon主端口模塊,用于控制Avalon總線的主端口信號,從而實(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)會自動進(jìn)行總線仲裁,產(chǎn)生一個(gè)優(yōu)先級,控制對Avalon總線的使用情況。
當(dāng)某主外設(shè)要發(fā)起總線請求時(shí),可能Avalon總線不能馬上作出響應(yīng)而處于等待狀態(tài)。Nios II處理器將準(zhǔn)備顯示的數(shù)據(jù)發(fā)送后要求立即存入到存儲器中,否則到下一個(gè)周期數(shù)據(jù)將會更新,從而導(dǎo)致數(shù)據(jù)丟失,此時(shí)Avalon總線需將信號設(shè)置為等待狀態(tài)。因此必須將數(shù)據(jù)暫時(shí)存儲在緩沖區(qū)中,待Avalon總線響應(yīng)寫傳輸時(shí)再將其從緩沖區(qū)中讀出寫入到存儲器中。用一個(gè)先進(jìn)先出的FIFO作為緩沖器能夠滿足以上條件,通過時(shí)鐘來控制FIFO的寫入和讀出。
4 結(jié)束語
試驗(yàn)結(jié)果證明,運(yùn)行在FPGA中的SOPC系統(tǒng)可以控制VGA顯示器,并將VGA成功驅(qū)動,而且能夠進(jìn)行畫點(diǎn)、畫線、畫矩形、畫圓以及16×16漢字和8×16 ASCII字符混排的顯示,同時(shí)達(dá)到了圖像的彩色顯示要求。