自定義外設(shè)作為NiosII軟核處理器超強(qiáng)靈活性的體現(xiàn),其開(kāi)發(fā)遵循一定的規(guī)律。一個(gè)用戶自定義外設(shè)必須進(jìn)行硬件設(shè)計(jì),也就是說(shuō),必須用硬件描述語(yǔ)言來(lái)描述出硬件的邏輯組成。一般來(lái)說(shuō),一個(gè)自定義外設(shè)主要由下列部分組成:
① 描述自定義外設(shè)邏輯的硬件描述文件部分(主要是HDL程序)。
② 軟件文件,一個(gè)用來(lái)定義外設(shè)寄存器的C語(yǔ)言頭文件,以及讓程序員控制這個(gè)元件的軟件驅(qū)動(dòng)程序。
③ 元件的描述文件(class.ptf)。該文件定義了元件的架構(gòu),提供了SOPC。
Builder將該元件集成到一個(gè)系統(tǒng)的各種信息。該文件由元件編輯器根據(jù)用戶提供的硬件和軟件文件以及在圖形用戶界面中設(shè)置的各個(gè)選項(xiàng)和參數(shù)自動(dòng)生成。圖1給出了帶Avalon從端口的自定義外設(shè)組成框圖。
一個(gè)典型的自定義外設(shè)主要由下列功能模塊組成:
① 任務(wù)邏輯。任務(wù)邏輯實(shí)現(xiàn)外設(shè)的基本功能,是必不可少的組成部分。
② 寄存器文件。寄存器文件部分提供任務(wù)邏輯和外界交換信息的橋梁。有了寄存器文件,用戶就可以通過(guò)Avalon接口采用“基地址+地址偏移量”的方法來(lái)訪問(wèn)外設(shè)內(nèi)部的各個(gè)寄存器。
③ Avalon接口。Avalon接口為寄存器文件提供了一個(gè)標(biāo)準(zhǔn)的Avalon前端。該模塊使用Avalon規(guī)定的信號(hào)來(lái)訪問(wèn)寄存器文件,并且支持任務(wù)邏輯的傳輸類(lèi)型。
用戶自定義IP核按照對(duì)Avalon總線操作的不同可分為Avalon Master外設(shè)、Avalon Slaver外設(shè)及AvalonStreaming外設(shè)。用戶開(kāi)發(fā)的外設(shè)大多為Avalon Slaver外設(shè),Avalon Master和Avalon Streaming外設(shè)的開(kāi)發(fā)比Avalon Slaver外設(shè)要復(fù)雜,但開(kāi)發(fā)流程相同。一個(gè)典型的Avalon外設(shè)的開(kāi)發(fā)步驟如下:
(1)規(guī)劃元件的硬件功能。如果采用微控制器來(lái)控制該元件,則規(guī)劃訪問(wèn)該硬件的應(yīng)用程序接口(API);
(2)在硬件和軟件要求的基礎(chǔ)上,定義一個(gè)恰當(dāng)?shù)腁valon接口(一般為Avalon從端口);
(3)使用硬件描述語(yǔ)言描述硬件邏輯。一個(gè)典型元件的硬件架構(gòu)一般3部分組成:接口模塊(avalon inteRFace)作為頂層模塊,定義總線接口信號(hào);寄存器文件模塊(register file)完成該元件與外部信號(hào)進(jìn)行通信,提供訪問(wèn)與控制元件的邏輯界面;行為模塊(task logic)實(shí)現(xiàn)元件的硬件功能。片上總線AvaIon從端口的信號(hào)都不是必須的。
(4)單獨(dú)驗(yàn)證元件的硬件功能;
(5)寫(xiě)用于描述寄存器的C頭文件來(lái)為軟件定義硬件寄存器映像;
(6)寫(xiě)元件的驅(qū)動(dòng)軟件;
(7)把通過(guò)測(cè)試的源代碼使用元件編輯器封裝硬件HDL和軟件文件,完成元件定制。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |