- FPGA進(jìn)階開發(fā)與實(shí)踐
- 田亮 張瑞 蔡偉等編著
- 992字
- 2021-02-22 16:30:23
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)行。
- 24小時(shí)學(xué)會(huì)電腦組裝與維護(hù)
- Cortex-M3 + μC/OS-II嵌入式系統(tǒng)開發(fā)入門與應(yīng)用
- ATmega16單片機(jī)項(xiàng)目驅(qū)動(dòng)教程
- 網(wǎng)絡(luò)服務(wù)器配置與管理(第3版)
- FPGA從入門到精通(實(shí)戰(zhàn)篇)
- 電腦維護(hù)與故障排除傻瓜書(Windows 10適用)
- 施耐德SoMachine控制器應(yīng)用及編程指南
- Intel FPGA/CPLD設(shè)計(jì)(高級(jí)篇)
- 硬件產(chǎn)品經(jīng)理成長(zhǎng)手記(全彩)
- scikit-learn:Machine Learning Simplified
- 筆記本電腦應(yīng)用技巧
- 微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用:國(guó)產(chǎn)龍芯處理器的軟件和硬件集成(基礎(chǔ)篇)
- Spring Cloud微服務(wù)和分布式系統(tǒng)實(shí)踐
- 圖解計(jì)算機(jī)組裝與維護(hù)
- 電腦組裝與維護(hù)即時(shí)通