如何設計基于A(yíng)valon總線(xiàn)的可配置LCD控制器IP核?
基于NiosII 軟核的SOPC(System ON Programmable Chip)是Altera 公司提出的片上可編程系統解決方案,它將CPU、存儲器、I/O接口、DSP 模塊以及鎖相環(huán)(PLL)的系統設計所必須的模塊集成到一片FPGA 上,構成一個(gè)可編程的片上系統,使所設計的電路在其規模、可靠性、體積、功耗、功能、上市周期、開(kāi)發(fā)成本、產(chǎn)品維護以及硬件升級等多方面實(shí)現最優(yōu)化。
本文引用地址:http://dyxdggzs.com/article/201808/384965.htm目前在A(yíng)ltera SOPC Builder 下集成了包括UART、SPI、Ethernet、SDRAM、Flash、DMA等控制器的IP 核。此外,用戶(hù)也可以根據系統的需要自己設計或者購買(mǎi)第三方廠(chǎng)商的IP 核通過(guò)Avalon 總線(xiàn)像搭積木一樣方便地將這些IP 捆綁的系統上。但是在顯示接口上,Altera公司只提供了一個(gè)16*2 的字符型LCD 控制器的IP 核,只能用來(lái)顯示數字和英文字母。如用戶(hù)需要圖形顯示(如MP4 和PDA)則需要外接專(zhuān)用控制芯片或自己設計IP 核,使用起來(lái)很不方便。因此我們設計一個(gè)基于Nios II 系統的可配置LCD 控制器的IP 核,本IP 核可以方便的通過(guò)Avalon 掛接到Nios II 的系統上??紤]到目前LCD 顯示屏的實(shí)際需要,我們設計的LCD 顯示控制IP 核具有以下主要功能:
·以Avalon 總線(xiàn)流傳輸模式提供接口;
·為L(cháng)CD 屏提供掃描時(shí)序信號和顯示數據;
·提供可以選擇的分辨率,最大可以支持1024*768;
·可以通過(guò)軟件配置顯存的基地址和大小;
1. Avalon 總線(xiàn)規范
1.1 總線(xiàn)概述
Avalon 總線(xiàn)是Altera 公司為SOPC 系統開(kāi)發(fā)的一種專(zhuān)用的內部連線(xiàn)技術(shù),是一種理想的用于系統處理器和外設之間的內聯(lián)總線(xiàn)。它是構建在Nios II 軟核的基礎上,由Altera 公司提供SOPC Builder 系統設計工具自動(dòng)生成。
Avalon 總線(xiàn)支持多個(gè)主外設,任何一個(gè)主外設都可以直接進(jìn)行存儲器訪(fǎng)問(wèn)(DMA),而無(wú)須Nios II 處理器的干預。一般的系統總線(xiàn)(如AMBA 總線(xiàn))都是采用主端總裁機制,而Avalon 采用DMA 從端仲裁機制,能夠實(shí)現真正意義上的多模塊DMA 并行傳輸,而不相互影響。
Avalon 總線(xiàn)允許多個(gè)主端口連接到總線(xiàn)模塊,實(shí)現總線(xiàn)的的并發(fā)多主端口傳輸的功能,而總線(xiàn)模塊不需要額外的特殊信號;當有多個(gè)主外設試圖同時(shí)訪(fǎng)問(wèn)同一外設時(shí),由Avalon總線(xiàn)模塊內部的從端口仲裁邏輯來(lái)處理沖突,對于主端口來(lái)說(shuō),它并不會(huì )感到有另一個(gè)主端口也在爭用該外設,而是簡(jiǎn)單的發(fā)現它的等待請求信號一直有效,直到目標外設從端口準備好來(lái)處理自己的請求。因此,多個(gè)主外設只要不是同時(shí)訪(fǎng)問(wèn)同一個(gè)從外設,即可同時(shí)進(jìn)行總線(xiàn)傳輸。仲裁的詳細信息被封裝在總線(xiàn)內部,主外設和從外設的接口是一致的,與外設的數量無(wú)關(guān)。
1.2 Avalon 總線(xiàn)流傳輸模式
Avalon 規定了各種傳輸模式,這里只介紹本IP 核所使用的流傳輸模式。關(guān)于其他的總線(xiàn)模式讀者可以Avalon 的總線(xiàn)規范。
流傳輸模式是在流模式主外設和流模式從外設之間建立一個(gè)開(kāi)放的信道以供連續的數據傳輸。該信道使得只要存在有效數據,數據便能在主從端口對之間流動(dòng),主外設不必為了確定從端口是否可用而不斷地訪(fǎng)問(wèn)從外設的寄存器。流傳輸模式使得主從端口之間的數據吞吐量達到最大,同時(shí)避免了從外設數據溢出。流傳輸模式最適合DMA 傳輸。一個(gè)只包含簡(jiǎn)單的流控制信號和一個(gè)計數器的DMA 控制器就可以用來(lái)在一個(gè)從外設和一個(gè)存儲器之間連續地傳輸數據。
由于數據流是從Avalon 總線(xiàn)流向LCD 控制器,所以是流模式的從端口寫(xiě)傳輸。圖1 顯示了流模式從端口寫(xiě)傳輸的模型。
除了基本從端口傳輸中使用的信號外,流模式外設的接口中又引入了readyfordata、dataavailable 和 endofpacket 三個(gè)信號。流模式從端口就是指使用了一個(gè)或多個(gè)上述信號的從端口。readyfordata 有效表示外設準備好接受 Avalon 總線(xiàn)模塊的寫(xiě)傳輸;dataavailable 有效表示能夠為來(lái)自 Avalon 總線(xiàn)模塊的讀傳輸提供數據。Avalon 總線(xiàn)模塊只在 readyfordata或 dataavailable 有效時(shí)才會(huì )發(fā)起傳輸行為。endofpacket 信號的含義取決于用戶(hù)設計。
2. Avalone 流模式LCD 控制器IP 核設計
LCD 控制器按功能可劃分為三個(gè)模塊:接口模塊,數據處理模塊和時(shí)序產(chǎn)生模塊。接口模塊主要用來(lái)對系統進(jìn)行配置,獲取系統狀態(tài)信息以及從內存讀出將要顯示的數據信息;數據處理模塊根據系統的配置信息,對讀入控制器的內存數據進(jìn)行相應的處理,以符合用戶(hù)設置的顯示要求;時(shí)序產(chǎn)生模塊產(chǎn)生顯示時(shí)序信號,使得系統在不同的配置下都能產(chǎn)生與之相應的精確時(shí)序,以保證圖象的正確顯示。
在具體實(shí)現時(shí),這三個(gè)部分又可以劃分為不同的功能模塊來(lái)完成系統的總體功能。整個(gè)模塊包括配置寄存器接口模塊、DMA 接口模塊組成和異步FIFO 模塊,時(shí)序產(chǎn)生部分由時(shí)序產(chǎn)生模塊構成。
2.1 DMA 接口模塊
一般情況下,LCD 顯示需要進(jìn)行大批量的數據傳送。在標準 VGA(640×480 60Hz)模式下,每個(gè)像素點(diǎn)的掃描周期只有40ns。如此高速的數據傳輸,如果直接通過(guò)CPU 來(lái)操作,將會(huì )消耗大量的CPU 時(shí)間。為了提高CPU 的工作效率,我們在Nios II 下利用DMA(Direct Memory Access,直接存儲器訪(fǎng)問(wèn))來(lái)完成。利用DMA 控制器在LCD 控制器和顯示存儲器SDRAM 之間建立一條專(zhuān)用的DMA 傳輸通道,通過(guò)DMA 控制器自動(dòng)的讀去圖象數據,不需要CPU 干預。
在DMA 傳輸時(shí),首先需要由CPU 對DMA 進(jìn)行初始化,設置顯示存儲器的基地址和長(cháng)度以及LCD 控制器輸入寄存器的地址,然后打開(kāi)DMA 傳輸通道,使DMA 在沒(méi)有CPU 干預的情況下直接從顯示存儲器讀取顯示數據傳送到LCD控制的FIFO中。Nios II 可以在DMA暫停傳輸的期間操作SDRAM 中的顯存,完成LCD 顯示圖像的更新。
DMA 接口采用Avalon 主設備端口來(lái)實(shí)現。
2.2 配置積存器接口模塊
系統可以通過(guò)配置寄存器接口模塊對LCD 顯示控制器進(jìn)行各種功能配置;LCD 控制器也可以通過(guò)接口模塊向系統反饋所需的狀態(tài)信息,從而實(shí)現對系統狀態(tài)的檢測和控制。通過(guò)針對不同種類(lèi)的LCD 屏幕和不同的顯示模式提供相應寄存器,可以保證對于各種LCD 顯示屏的兼容。
2.3 異步FIFO 模塊
由于總線(xiàn)接口模塊和LCD 控制器工作在不同的時(shí)鐘域,如果直接傳送數據將會(huì )使電路進(jìn)入亞穩態(tài),無(wú)法正常工作。所以使用異步FIFO 做為接口在兩個(gè)時(shí)鐘之間傳遞數據。典型的異步FIFO 由異步雙端口RAM 和控制邏輯構成。
評論