基于NioslI的SOPC系統的LCD顯示驅動(dòng)IP核設計
3.2 寄存器組
寄存器組由一系列寄存器組成,為軟件提供了訪(fǎng)問(wèn)硬件的通道。寄存器組中的寄存器是根據任務(wù)邏輯中需要實(shí)現的特定邏輯功能來(lái)設定的,任務(wù)邏輯中的數據通過(guò)這些寄存器傳輸。本設計中,寄存器組設定了8位頁(yè)地址寄存器、8位列地址寄存器,以及32位數據寄存器等。
3.3 Ayalon總線(xiàn)接口
顯示驅動(dòng)的Avalon總線(xiàn)接口需要一個(gè)簡(jiǎn)單的Slave端口。該端口使用較少的Avalon信號來(lái)處理簡(jiǎn)單的寄存器讀/寫(xiě)傳輸。該模塊是與Avalon總線(xiàn)接口的一個(gè)頂層模塊,主要功能是對任務(wù)邏輯模塊和寄存器模塊進(jìn)行例化和封裝,使其信號類(lèi)型符合Avalon總線(xiàn)信號規范和外接模塊的信號規范。頂層接口定義如下:

直接在SOPC Builder中添加設計好的顯示驅動(dòng)IP Core和Verilog HDL語(yǔ)言描述的文件,并根據Avalon總線(xiàn)傳輸規范設置好相關(guān)的信號線(xiàn)及傳輸參數。由于是在NiosII IDE環(huán)境下直接編寫(xiě)用戶(hù)程序,可以不用編寫(xiě)驅動(dòng)程序。完成后,將顯示驅動(dòng)IP Core添加至SOPC工程,并編譯、下載到FPGA器件中。
在NiosII IDE環(huán)境下,使用自己添加的模塊編寫(xiě)程序,可直接調用甬數IOWR(BASE,OFFSET,DATA)和IORD(BASE,OFFSET)對內部寄存器進(jìn)行讀寫(xiě)。本文使用結構體定義了一個(gè)指向模塊的結構體指針,對寄存器進(jìn)行讀寫(xiě)操作。

CBGl28064本身不帶字庫,可以通過(guò)2種方式添加字庫:一種是把所需字庫做到硬件ROM中,增加了硬件資源成本,且缺乏靈活性;另一種是在軟件中定義字庫,通過(guò)寫(xiě)數據寄存器進(jìn)行顯示。本設計采用第2種方式,在軟件中定義字庫,并編寫(xiě)了簡(jiǎn)單的顯示測試程序,在液晶屏上顯示“ZHONG GUO”字樣。測試結果表明,該設計是正確可行的。此外,利用字模軟件生成的圖形數據,也可進(jìn)行圖形顯示。
結語(yǔ)
本文采用有限狀態(tài)機設計了CBGl28064液晶模塊驅動(dòng)硬件邏輯,并將顯示驅動(dòng)IP核進(jìn)行封裝構成了一個(gè)模塊化的獨立元件,使其能夠在其他的工程中復用;在此基礎上,基于NiosII嵌入式處理器構建了一個(gè)用戶(hù)定制的片上系統。經(jīng)過(guò)在Cyclone系列FPGA上測試,該驅動(dòng)能夠在C-BGl28064液晶模塊上顯示字符、圖形。整個(gè)系統體現了SOPC嵌入式系統的靈活性和擴展性。
評論