資源描述:
《定制avalon外設(shè)參考》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、本節(jié)講述開發(fā)一個(gè)定制的SOPCBuilder元件的設(shè)計(jì)流程,從創(chuàng)建定制外設(shè)、集成外設(shè)到系統(tǒng)中,最后將其下載到硬件。講述定制外設(shè)的開發(fā)流程之后,以Altera公司提供的一個(gè)設(shè)計(jì)實(shí)例作為練習(xí)。該實(shí)例展示了開發(fā)一個(gè)只具有Avalon從接口的外設(shè)。用戶使用Altera提供的HDL設(shè)計(jì),將其打包到成一個(gè)SOPCBuilder元件,然后在系統(tǒng)中例化它。然后將工程編譯下載到開發(fā)板上。最后介紹怎樣共享用戶定制外設(shè),這樣用戶設(shè)計(jì)的外設(shè)可以為其它的系統(tǒng)和設(shè)計(jì)者使用。?????SOPCBuilder提供元件編輯器使用戶可以創(chuàng)建和
2、編輯自己的SOPCBuilder元件。·典型地,一個(gè)元件有下面的部分構(gòu)成:·硬件文件:描述元件硬件的HDL模塊?!ぼ浖募憾x元件寄存器映射的C語(yǔ)言的頭文件,元件的驅(qū)動(dòng)程序。元件描述文件(class.ptf):定義元件的結(jié)構(gòu),提供給SOPCBuilder將該元件集成到系統(tǒng)中必要的信息。元件編輯器根據(jù)用戶提供的軟件和硬件文件以及用戶在元件編輯器的圖形用戶界面指定的參數(shù)自動(dòng)產(chǎn)生這個(gè)文件。?????在創(chuàng)建完描述元件的硬件和軟件文件之后,用戶使用元件編輯器將這些文件打包成一個(gè)SOPCBuilder元件。如果用戶更
3、新了硬件或軟件文件,用戶還可以使用元件編輯器對(duì)這個(gè)元件進(jìn)行再次的編輯。8.2.1元件開發(fā)流程?????本節(jié)介紹元件開發(fā)流程,包括硬件和軟件兩方面,這里介紹只有一個(gè)Avalon從接口的元件設(shè)計(jì)流程,而其設(shè)計(jì)流程的步驟可以很容易地推廣到具有主端口的元件或者多個(gè)主端口和從端口的元件。從外設(shè)的典型的設(shè)計(jì)順序包括如下的步驟:1.指定硬件功能。2.如果微處理器要控制該元件,指定訪問和控制該硬件的應(yīng)用程序接口(API)。3.根據(jù)硬件和軟件的要求,定義一個(gè)Avalon接口,該接口要提供:?????a.正確的控制機(jī)制。???
4、??b.足夠的吞吐量性能。4.采用Verilog或者VHDL編寫硬件設(shè)計(jì)。.5.單獨(dú)測(cè)試元件的硬件,驗(yàn)證操作的正確性。6.編寫C頭文件,為軟件定義硬件層次的寄存器映射。7.使用元件編輯器將硬件和軟件文件打包成一個(gè)元件。8.例化元件為一個(gè)SOPCBuilder系統(tǒng)的模塊。9.使用NiosII處理器來(lái)測(cè)試對(duì)元件的寄存器級(jí)的訪問,用戶可以執(zhí)行硬件的測(cè)試,或者是進(jìn)行HDL仿真。10.如果微處理器要控制該元件,編寫元件的驅(qū)動(dòng)程序。11.根據(jù)元件的在系統(tǒng)的行為,反復(fù)改進(jìn)元件的設(shè)計(jì):?????a.硬件的改進(jìn)和調(diào)整。???
5、??b.軟件的改進(jìn)和調(diào)整。?????c.使用元件編輯器更新元件。12.編譯完整的含有一個(gè)或多個(gè)該元件的SOPCBuilder系統(tǒng)。13.執(zhí)行系統(tǒng)級(jí)的驗(yàn)證,如果必要進(jìn)行進(jìn)一步的反復(fù)改進(jìn)。14.完成元件的設(shè)計(jì),發(fā)布該元件,其他設(shè)計(jì)者可以重用該元件。主外設(shè)的設(shè)計(jì)的過程與之類似,只是軟件開發(fā)方面有所差異。8.2.2硬件設(shè)計(jì)?????同任何的邏輯設(shè)計(jì)過程一樣,SOPCBuilder元件的硬件開發(fā)在需求分析階段之后開始。當(dāng)用戶根據(jù)需求說(shuō)明編寫和驗(yàn)證HDL邏輯時(shí),其過程是一個(gè)迭代的過程。典型元件的結(jié)構(gòu)包括下面的功能模塊:
6、·任務(wù)邏輯(TaskLogic)——任務(wù)邏輯實(shí)現(xiàn)元件基本的功能。任務(wù)邏輯是和設(shè)計(jì)相關(guān)的?!ぜ拇嫫魑募≧egisterFile)——寄存器文件為任務(wù)邏輯內(nèi)部的信號(hào)同外部通信提供了一條通路,反之亦然。寄存器文件映射內(nèi)部的節(jié)點(diǎn)為可尋址的地址偏移量,Avalon接口可對(duì)其進(jìn)行讀寫訪問?!valon接口——Avalon接口提供標(biāo)準(zhǔn)的寄存器文件的Avalon前端。接口可以使用任意的Avalon信號(hào)類型,以訪問寄存器文件和支持任務(wù)邏輯所需要的傳輸。下面的因素影響Avalon接口:???????要傳輸?shù)臄?shù)據(jù)寬度是多少?
7、???????數(shù)據(jù)傳輸需要的吞吐量的要求是多少????????該接口主要是為了控制還是數(shù)據(jù)?即傳輸是零星的,還是連續(xù)的突發(fā)傳輸????????硬件相對(duì)系統(tǒng)中其它的元件是快速還是低速元件?圖8-16為一個(gè)具有一個(gè)Avalon從端口的典型元件的原理圖。8.2.3軟件設(shè)計(jì)?????如果用戶想要微處理器來(lái)控制用戶的元件,用戶則必須提供軟件文件,軟件文件定義了該元件的軟件視圖。在最小化的軟件設(shè)計(jì)中,用戶必須定義每個(gè)從端口的寄存器映射,以便處理器可以訪問。元件編輯器允許用戶將C語(yǔ)言的頭文件和元件打包在一起以定義硬件的軟
8、件視圖。典型情況下,頭文件聲明讀和寫元件寄存器的宏函數(shù),寄存器的地址相對(duì)于分配給元件的符號(hào)化的基地址。下面的例子是從Altera提供的用于NiosII處理器的UART元件的寄存器映射摘錄的一部分。例:元件的寄存器映射#include#defineIOADDR_ALTERA_AVALON_TIMER_STATUS(base)__IO_CALC_ADDRESS_NATIVE(base,0)#defineI