在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的片上可編程系統(tǒng)(SOPC)設(shè)計(jì)之:典型實(shí)例-基于NIOS II處理器的“Hello LED”程序設(shè)計(jì)

            基于FPGA的片上可編程系統(tǒng)(SOPC)設(shè)計(jì)之:典型實(shí)例-基于NIOS II處理器的“Hello LED”程序設(shè)計(jì)

            作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò) 收藏

            本文引用地址:http://www.biyoush.com/article/201706/348813.htm

            8.4典型實(shí)例14:基于NIOSII處理器的“HelloLED”程序設(shè)計(jì)

            8.4.1實(shí)例的內(nèi)容及目標(biāo)

            1.實(shí)例的主要內(nèi)容

            本節(jié)旨在通過(guò)給定的工程實(shí)例——“HelloLED”來(lái)熟悉Altera軟嵌入式系統(tǒng)的軟硬件設(shè)計(jì)方法。同時(shí)使用基于Altera的開(kāi)發(fā)板將該實(shí)例進(jìn)行下載驗(yàn)證,完成工程設(shè)計(jì)的硬件實(shí)現(xiàn)。本節(jié)主要講解下面一些知識(shí)點(diǎn)。

            ·QuartusIIBuilder使用方法。

            ·NIOSIIIDE軟件開(kāi)發(fā)流程。

            通過(guò)這些知識(shí)點(diǎn),按照本節(jié)實(shí)例的實(shí)現(xiàn)過(guò)程,讀者可以迅速掌握Altera軟嵌入式軟硬件設(shè)計(jì)方法。

            2.實(shí)例目標(biāo)

            通過(guò)詳細(xì)的流程講解,讀者應(yīng)達(dá)到下面的目標(biāo)。

            ·熟悉QuartusIIbuilder使用方法。

            ·熟悉NIOSIIIDE軟件設(shè)計(jì)方法。

            8.4.2實(shí)例詳解

            本實(shí)例使用圖解的方式將整個(gè)流程一步一步展現(xiàn)給讀者,使讀者能夠輕松掌握開(kāi)發(fā)的流程。

            本實(shí)例重點(diǎn)在于熟悉使用QuartusⅡ和Builder來(lái)創(chuàng)建一個(gè)NiosⅡ嵌入式處理器系統(tǒng),并通過(guò)軟件編程實(shí)現(xiàn)對(duì)實(shí)驗(yàn)板上面的LED燈的控制,具體實(shí)現(xiàn)過(guò)程如下。

            (1)新建工程。

            新建一個(gè)工程目錄“sopc_led”,在此目錄下建立一個(gè)名為“sopc_led”的QuartusII工程,并新建一個(gè)頂層圖,保存于工程中。

            (2)SOPCBuilder定制NIOSII處理器。

            用SOPCBuilder定制處理器及其外設(shè)。打開(kāi)“Tools”/“SOPCBuilder”,如圖8.30所示。

            圖8.30打開(kāi)Tools--SOPCBuilder

            指定系統(tǒng)名字,本例中我們輸入niosii_c。單擊“OK”按鈕進(jìn)入SOPC定制界面。

            圖8.31SOPCBuilder界面

            為“Target”選擇“UnspecifiedBoard”,為“Clock(MHz)”選擇時(shí)鐘頻率為50.0,為“TargetDeviceFamily”選擇目標(biāo)器件系列為Cyclone。

            在SOPC定制界面的左邊,我們可以看到有很多功能模塊,用戶可以按照需要將這些模塊添加到所設(shè)計(jì)的系統(tǒng)中。

            首先,我們需要一個(gè)CPU。選擇“Processor”/“AlteraCorporation”,彈出Altera對(duì)話框,我們選擇一個(gè)經(jīng)濟(jì)型的CPU核,即NiosII/e,如圖8.32所示。

            圖8.32加入NIOSIICPU

            單擊“JTAGDebugModule”標(biāo)簽頁(yè),選擇第一級(jí)調(diào)試支持Level1:特點(diǎn)是占用邏輯資源少,編譯速度快,不包括緩存,如圖8.33所示。

            圖8.33設(shè)置CPU調(diào)試模型

            單擊“Finish”按鈕完成NiosIICPU的配置工作。項(xiàng)目中會(huì)增加一個(gè)NiosII處理器,名字為cpu_0,為了簡(jiǎn)便起見(jiàn),沒(méi)有將它改名。改名的方法是:?jiǎn)螕粲益I,選擇“Rename”,輸入名字后回車即可,如圖8.34。

            圖8.34定制CPU完成圖

            (3)SOPCBuilder定制JTAG串口。

            在左側(cè)器件池中雙擊“JTAGUARTInterface”,使用默認(rèn)參數(shù)設(shè)置,如圖8.35所示。

            它是NiosII系統(tǒng)嵌入式處理器新添加的接口元件,通過(guò)內(nèi)嵌在Altera內(nèi)部的聯(lián)合測(cè)試行動(dòng)組(JTAG)電路,在PC主機(jī)和之間進(jìn)行串行字符流通信。特點(diǎn)是在運(yùn)行時(shí)在調(diào)試區(qū)輸入信息可以與FPGA進(jìn)行交互。

            (4)SOPCBuilder定制計(jì)時(shí)器。

            在左側(cè)器件池中雙擊“IntervalTimer”。定時(shí)器對(duì)于HAL系統(tǒng)庫(kù)中的器件驅(qū)動(dòng)非常有用,比如JTAGUART驅(qū)動(dòng)使用定時(shí)器來(lái)實(shí)現(xiàn)10s的暫停。選擇“IntervalTimer”,在設(shè)置向?qū)е兄芷谶x擇1msec,預(yù)設(shè)置中選擇Full-featured,如圖8.36所示。

            圖8.35JTAGUART參數(shù)設(shè)置 圖8.36計(jì)時(shí)器設(shè)置

            (5)SOPCBuilder定制外部Flash。

            在左側(cè)器件池中雙擊“CompactFlashInterface”。在“Presets”中選自定義Custom,地址寬度21bits,帶寬16bits。由于Flash是通用設(shè)備,所以時(shí)序標(biāo)簽使用默認(rèn)設(shè)置。如圖8.37和8.38所示。

            圖8.37Flash帶寬設(shè)參數(shù)置界面 圖8.38Flash時(shí)序參數(shù)設(shè)置界面

            (6)SOPCBuilder定制外部SDRAM。

            通常的系統(tǒng)都需要用戶指定一個(gè)內(nèi)存空間,這個(gè)內(nèi)存是指RAM,可以是片上的,也可以是片外的SDRAM或SRAM等。如果用戶程序較大,超出了FPGA所能定制的最大片上RAM容量,則也可以將程序放在SDRAM中運(yùn)行。在左側(cè)器件池中雙擊“SDRAMcontroller”。

            在“Presets”中選擇“micronMT48LC4M32B2-7chip”,其他的參數(shù)設(shè)置可以使用系統(tǒng)的默認(rèn)選項(xiàng),如圖8.39所示。

            (7)SOPCBuilder定制外部RAM總線。

            添加外部RAM總線(AvalonTri-StateBridge)。軟件使用Avalon接口來(lái)連接片上元件和Avalon主從端口。

            圖8.39SDRAM參數(shù)設(shè)置

            在Nios開(kāi)發(fā)板上,要實(shí)現(xiàn)Nios系統(tǒng)與FPGA片外存儲(chǔ)器通信,就必須在Avalon總線和連接外部存儲(chǔ)器的總線之間添加一個(gè)橋,這個(gè)橋就是Avalon三態(tài)總線,如圖8.40所示。

            圖8.40添加外部RAM總線

            (8)SOPCBuilder定制串行通信設(shè)備UART。

            通用串行總線RS-232協(xié)議是我們最常用的通信協(xié)議,所以把它也添加到我們的系統(tǒng)里。注意選擇所需的數(shù)據(jù)幀格式,如圖8.41所示。

            (9)SOPCBuilder定制LCD液晶模塊。

            使用標(biāo)準(zhǔn)16027字符型液晶顯示器。

            (10)SOPCBuilder定制systemid。

            在SOPCBuilder中使用默認(rèn)定制的systemid。

            (11)SOPCBuilder定制PIO。

            添加4個(gè)LED和輸入設(shè)備按鍵開(kāi)關(guān)PIO,這是一個(gè)標(biāo)準(zhǔn)SOPC一般所需要的設(shè)備。

            (12)SOPCBuilder指定基地址和中斷編號(hào)。

            首先修改Flash的基地址為0x00000000,之后在Flash上單擊右鍵鎖定基地址,如圖8.42所示。

            圖8.41串行通信設(shè)備UART參數(shù)設(shè)置

            圖8.42鎖定Flash基地址

            然后,選擇“System”/“Auto-AssignBaseAddresses”,讓系統(tǒng)自動(dòng)分配基地址,如圖8.43所示。

            圖8.43自動(dòng)分配系統(tǒng)設(shè)備地址

            最后,選擇“System”/“Auto-AssignIRQs”,讓系統(tǒng)自動(dòng)分配中斷,如圖8.44所示。

            (13)SOPCBuilderNIOSIICPU其他設(shè)置。

            單擊“NiosIIMore“cpu_0”Settings”選項(xiàng)卡,進(jìn)行處理器設(shè)定。在本實(shí)例中,將“ResetAddress”修改為“ext_flash”,“ExceptionAddress”修改為“sdram”,“BreakLocation”使用默認(rèn)值,如圖8.45所示。

            圖8.45自動(dòng)分配系統(tǒng)設(shè)備中斷編號(hào)

            (14)生成軟嵌入式系統(tǒng)IP核。

            單擊“SystemGeneration”選項(xiàng)卡,進(jìn)行最后的設(shè)定并生成系統(tǒng)。選中“HDLGeneratesystemmodulelogicinVerilog”。如果需要仿真,也選擇“SimulationCreateModelSim(tm)projectfiles”,然后單擊“Generate”按鈕,執(zhí)行系統(tǒng)生成的任務(wù)。

            然后,耐心地等待系統(tǒng)的生成。一般沒(méi)有問(wèn)題的話,可以看到系統(tǒng)提示“SUCCESS:SYSTEMGENERATIONCOMPLETED”。如果看到此信息,則說(shuō)明系統(tǒng)被正確生成了。如果失敗,請(qǐng)返回并檢查、修改。

            (15)在QuartusII工程中添加上述NIOS系統(tǒng)。

            類似向QuartusII工程添加功能模塊一樣,將所定制的NiosII軟核CPU添加到本例工程中。雙擊工程頂層圖空白處,彈出“Symbol”對(duì)話框,在“Project”下面可以找到剛才建立的niosii_c模塊,如圖8.46所示。

            圖8.46在QuartusII中添加IP核

            單擊“OK”按鈕將其niosii_c添加到頂層圖中。

            (16)在QuartusII工程中添加端口分配管腳編譯。

            首先在QuartusII中將NIOS等端口添加至工程中,并為工程添加相應(yīng)的管腳約束,然后即可對(duì)工程進(jìn)行編譯。

            (17)設(shè)計(jì)該工程軟件。

            首先在AlteraSOPCBuilder中,點(diǎn)擊RunNiosIIIDE,啟動(dòng)NiosIIIDE,如圖8.47所示。

            圖8.47打開(kāi)NIOSIIIDE軟件

            接下來(lái)我們要設(shè)計(jì)該工程的軟件。運(yùn)行NiosIDE,在NiosIIIDE中,選擇“File”/“New”/“Project”選項(xiàng),開(kāi)啟“NewProject”對(duì)話框,選擇“C/C++Application”,如圖8.48所示。

            圖8.48新建軟件工程

            然后單擊“Next”按鈕,進(jìn)入下一步,在模板中選擇“HelloLED”,如圖8.49所示。

            單擊“SOPCBuilderSystem”右邊的“Browse”按鈕打開(kāi)目錄對(duì)話框,從該工程目錄下找到“niosii_c.ptf”,因?yàn)镹iosIIIDE必須從這個(gè)文件獲取該系統(tǒng)的相關(guān)信息。單擊“Finish”按鈕,即建立一個(gè)名為Hello_LED_0的模板。

            打開(kāi)項(xiàng)目中的文件:hello_led.c,根據(jù)需要進(jìn)行修改。在本實(shí)例程序中,“PIO_0_BASE”名稱中的“PIO_0”應(yīng)改為SOPCBuilder定義時(shí)的名稱,如圖8.49中的“Hello_LED_0”。

            圖8.49采用設(shè)計(jì)模板

            (18)編譯軟件。

            右鍵單擊“hello_led_0”,在彈出的菜單中選擇“BuildProject”。(為使編譯過(guò)程更加順利,此時(shí)最好關(guān)閉殺毒軟件和其他占用電腦資源較大的軟件)。

            如果無(wú)誤,可以看到以下信息:Buildcompleted。如果看到了這條提示,表示軟件編譯成功,可以看到程序占用空間等信息。

            (19)下載驗(yàn)證。

            最后我們還要回到QuartusⅡ里面選擇“Tools”菜單里面的“Programmer”,下載整個(gè)配置到FPGA中去。

            然后在NiosII環(huán)境中單擊“RunAsNiosIIHardware”按鈕將C程序下載到實(shí)驗(yàn)板中。

            本實(shí)例最終的硬件實(shí)現(xiàn)現(xiàn)象是led跑馬燈。

            8.4.3小結(jié)

            本節(jié)講解了一個(gè)完整的軟嵌入式設(shè)計(jì)流程。雖然此實(shí)例實(shí)現(xiàn)的功能比較簡(jiǎn)單,但對(duì)于初學(xué)者來(lái)說(shuō),是一個(gè)不錯(cuò)的入門(mén)實(shí)例。其中硬件設(shè)計(jì)部分(SoPCbuilder)包括開(kāi)發(fā)板上所有設(shè)備,以后讀者可以在此硬件平臺(tái)上建立多個(gè)軟件運(yùn)行。



            關(guān)鍵詞: SOPC NiosII FPGA

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉