官术网_书友最值得收藏!

2.1 SOPC開發(fā)流程

SOPC開發(fā)包括硬件開發(fā)和軟件開發(fā)兩部分。硬件開發(fā)主要基于Quartus Ⅱ和Qsys(原SOPC Builder)。軟件開發(fā)最早使用Nios Ⅱ IDE,后來(lái)逐漸轉(zhuǎn)向Nios Ⅱ Software Build Tools for Eclipse(簡(jiǎn)稱Nios Ⅱ SBT)。Nios Ⅱ使用Eclipse集成開發(fā)環(huán)境來(lái)完成軟件工程的編輯、編譯、調(diào)試和下載,極大地提高了軟件開發(fā)效率。

圖2-1顯示了基于英特爾Quartus Ⅱ和Nios Ⅱ的SOPC開發(fā)流程。從圖中可見,與FPGA開發(fā)流程相比,SOPC開發(fā)流程增加了處理器及其外設(shè)接口的定制步驟,以及Nios Ⅱ軟件開發(fā)部分。這些新增加的開發(fā)內(nèi)容可以利用Qsys、Nios Ⅱ SBT輕松地完成。

圖2-1 SOPC開發(fā)流程

2.1.1 硬件開發(fā)流程

(1)利用Qsys從Nios Ⅱ處理器內(nèi)核和Nios Ⅱ開發(fā)套件提供的外設(shè)列表中選取合適的CPU、存儲(chǔ)器及外圍器件(如片內(nèi)存儲(chǔ)器、PIO、定時(shí)器、UART、片外存儲(chǔ)器接口等),并定制和配置它們的功能,然后分配外設(shè)地址及中斷號(hào),設(shè)定復(fù)位地址,最后生成系統(tǒng)。用戶也可以添加自身定制的指令邏輯到Nios Ⅱ內(nèi)核以提高CPU性能,或者添加自身定制的外設(shè)以減輕CPU的工作量。

(2)使用Qsys生成Nios Ⅱ系統(tǒng)后,將其集成到Quartus Ⅱ工程中??梢栽赒uartus Ⅱ工程中加入Nios Ⅱ系統(tǒng)以外的邏輯,大多數(shù)SOPC設(shè)計(jì)都包括Nios Ⅱ系統(tǒng)以外的邏輯,這也是SOPC系統(tǒng)的優(yōu)勢(shì)所在。用戶可以集成自身定制的硬件模塊到SOPC設(shè)計(jì)中,或者集成從英特爾或第三方供應(yīng)商處獲取的現(xiàn)成的知識(shí)產(chǎn)權(quán)(IP)設(shè)計(jì)模塊。

(3)使用Quartus Ⅱ軟件選取具體的英特爾FPGA器件型號(hào),然后為Nios Ⅱ系統(tǒng)中的各I/O接口分配引腳,并根據(jù)要求進(jìn)行硬件編譯選項(xiàng)或時(shí)序約束的設(shè)置,最后編譯Quartus Ⅱ工程。在編譯過(guò)程中Quartus Ⅱ?qū)?duì)Qsys生成系統(tǒng)的HDL設(shè)計(jì)文件進(jìn)行布局布線,由HDL源文件生成一個(gè)適合目標(biāo)器件的網(wǎng)表,同時(shí)生成FPGA配置文件。

(4)使用Quartus Ⅱ編程器和下載線(如USB Blaster)將配置文件(用戶定制的Nios Ⅱ處理器系統(tǒng)的硬件設(shè)計(jì))下載到開發(fā)板上。當(dāng)校驗(yàn)完當(dāng)前硬件設(shè)計(jì)后,可將新的配置文件下載到開發(fā)板上的非易失性存儲(chǔ)器(如EPCS器件)中。下載完硬件配置文件后,軟件開發(fā)者就可以將此開發(fā)板作為初期硬件平臺(tái)進(jìn)行軟件開發(fā)。

2.1.2 軟件開發(fā)流程

(1)當(dāng)用Qsys進(jìn)行硬件設(shè)計(jì)時(shí),就可以開始編寫?yīng)毩⒂谄骷腃/C++程序,如算法或控制程序。用戶可以使用現(xiàn)成的軟件庫(kù)和開放的操作系統(tǒng)內(nèi)核來(lái)加快開發(fā)進(jìn)程。

(2)在Nios Ⅱ SBT中建立新的軟件工程時(shí),Eclipse會(huì)根據(jù)Qsys對(duì)系統(tǒng)的硬件配置自動(dòng)生成一個(gè)定制的HAL(硬件抽象層)系統(tǒng)庫(kù)。這個(gè)庫(kù)能為程序和底層硬件的通信提供接口驅(qū)動(dòng)程序,它類似于在創(chuàng)建Nios Ⅱ系統(tǒng)時(shí)Qsys生成的SDK。

(3)使用Nios Ⅱ SBT對(duì)軟件工程進(jìn)行編譯、調(diào)試。

(4)將軟件下載到開發(fā)板上并在硬件上運(yùn)行。

主站蜘蛛池模板: 康马县| 兰溪市| 武隆县| 隆林| 海安县| 凤山县| 陵川县| 洪湖市| 新丰县| 温州市| 大埔县| 微山县| 蓬莱市| 辉县市| 屯昌县| 天等县| 云和县| 肇源县| 通榆县| 客服| 黎平县| 南溪县| 十堰市| 沿河| 丰镇市| 延川县| 吴川市| 囊谦县| 浮梁县| 洮南市| 遂平县| 赞皇县| 南平市| 尼玛县| 乡宁县| 高阳县| 保康县| 乌拉特中旗| 和静县| 呈贡县| 靖安县|