国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的片上可編程系統(tǒng)(SOPC)設計之:基于NIOS II的開發(fā)設計流程

基于FPGA的片上可編程系統(tǒng)(SOPC)設計之:基于NIOS II的開發(fā)設計流程

作者: 時間:2017-06-05 來源:網(wǎng)絡 收藏

本文引用地址:http://m.ptau.cn/article/201706/348814.htm

8.3基于NIOSII的開發(fā)設計流程

NIOSII使用NIOSIIIDE集成開發(fā)環(huán)境來完成整個軟件工程的編輯、編譯、調(diào)試和下載。在采用NIOS處理器設計嵌入式系統(tǒng)時,通常會按照以下步驟。

(1)分析系統(tǒng)需求說明,包括功能需求和性能約束等。

(2)根據(jù)分析結(jié)果,選擇片外外設或片內(nèi)IP(知識產(chǎn)權(quán)核)。除此以外,還要對選擇的IP和外設進行初步性能評估,以保證能夠滿足系統(tǒng)需求。

(3)設定IP和系統(tǒng)參數(shù)。

(4)確定系統(tǒng)互聯(lián)邏輯,分配的引腳等。

(5)結(jié)合NIOS提供的軟件開發(fā)包進行軟件開發(fā)。

8.3.1硬件開發(fā)流程

首先來看一下NIOS的硬件系統(tǒng)組成。

1.NIOS硬件組成

如圖8.2所示為典型NIOSII系統(tǒng)的硬件組成。

圖8.2NIOSII系統(tǒng)的硬件組成

如圖8.3所示為典型NIOSCPU的系統(tǒng)框圖。

圖8.3NIOSCPU系統(tǒng)框圖

我們可以將圖8.3的系統(tǒng)結(jié)構(gòu)劃分如下。

其中,片內(nèi)邏輯是指實現(xiàn)在內(nèi)部的電路設計,系統(tǒng)模塊指的是由Builder自動生成的設計。

Builder會根據(jù)用戶選擇的IP生成相應的HDL描述文件(系統(tǒng)模塊文件),這些文件與用戶邏輯區(qū)域內(nèi)的設計描述文件一起由Quartus軟件綜合,然后下載到內(nèi),這樣就構(gòu)成了系統(tǒng)的硬件基礎。

系統(tǒng)模塊包含至少一個Avalon主外設和整個Avalon總線模塊。系統(tǒng)模塊通常還包含一些Avalon從外設,例如UART、PIO和定時器等。Builder可以幫助設計者從IP庫尋找合適的IP并很快地集成一個系統(tǒng),它采用圖形用戶界面(GUI)顯示和組織IP模塊,能夠自動生成IP模塊互連邏輯以及生成用于綜合和模擬的文件,使得設計者可以輕松完成系統(tǒng)設計。

當用戶使用SOPCBuilder創(chuàng)建一個新的系統(tǒng)時,SOPCBuilder會為該系統(tǒng)自動生成一個PTF文件,所有的設計信息都存儲在該PTF文件里。當使用SOPCBuilder重新打開一個已有的系統(tǒng)時,SOPCBuilder會從并且只從PTF文件中讀取系統(tǒng)具體設計信息。

用戶邏輯區(qū)內(nèi)可以包含用戶自定義的Avalon外設,以及同系統(tǒng)模塊無關的其他的用戶自定義邏輯。硬件系統(tǒng)建立起來以后,用戶可以利用Altera公司提供的NIOSIIIDE工具結(jié)合SOPCBuilder生成的與硬件系統(tǒng)對應的軟件開發(fā)包來開發(fā)用戶軟件。

下面介紹使用這些設計工具進行NIOSII開發(fā)的流程。

2.NIOSII硬件開發(fā)流程

下面是NIOSII硬件開發(fā)流程的主要步驟。

·用SOPCBuilder來選擇合適的CPU、存儲器及外圍器件,比如片內(nèi)存儲器、PIO、UART和片外存儲器接口。

·使用QuartusII軟件選取具體的器件,并對SOPCBuilder生成HDL設計文件進行布局布線;再根據(jù)開發(fā)板分配I/O管腳;編譯完后生成適合目標器件的網(wǎng)表。

·使用下載電纜將配置文件下載到開發(fā)板上。當校驗硬件或時鐘完畢后,就可以開始軟件開發(fā)工作了。

下面這個例子將要添加一個NIOSII系統(tǒng)得所有硬件部分,主要包括以下內(nèi)容。

(1)選擇CPU。

選擇NIOSII/e經(jīng)濟型處理器,其特點是占用邏輯資源少,編譯速度快,不包括緩存,如圖8.4所示。

圖8.4選擇NIOSII處理器

(2)選擇JTAG調(diào)試模塊。

選擇第一層JTAG硬件調(diào)試模塊,如圖8.5所示。

圖8.5選擇JTAG調(diào)試模塊

(3)設置JTAGUART接口。

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

如圖8.6所示,使用默認選項即可。

(4)設置定時器。

如圖8.7所示,定時器對于HAL系統(tǒng)庫中的器件驅(qū)動非常有用,比如JTAGUART驅(qū)動使用定時器來實現(xiàn)10s的暫停。選擇Intervaltimer在設置向?qū)е兄芷谶x擇1msec,預設置(PresetConfigurations)中選擇Full-featured。

圖8.6JTAGUART接口 圖8.7Avalon總線定時器

(5)添加外部Flash。

設置Flash地址寬度為20bits,帶寬為16bits,如圖8.8所示。

圖8.8添加外部Flash

圖8.8添加外部Flash(續(xù))

如果用戶程序和數(shù)據(jù)比較大,超出了EPCS1的容量,則程序和數(shù)據(jù)可以保存在普通Flash中。Flash的燒寫可以采用NIOSIIIDE的“FlashProgrammer”來燒寫,具體操作過程請參考/altera/kits/NIOS2/documents目錄下“ug_NIOS2_flash_programmer.pdf”。

(6)添加外部SDRAM。

通常的系統(tǒng)都需要用戶指定一個內(nèi)存空間,這個內(nèi)存是指RAM,可以是片上的,也可以是片外的SDRAM或SRAM等。如果用戶程序較大,超出了EP1C20所能定制的最大片上RAM容量,則也可以將程序放在SDRAM中運行。

將SDRAM進行如圖8.9所示的設置。

圖8.9添加外部SDRAM

(7)設置Avalon外部總線。

軟件使用Avalon接口來連接片上元件和Avalon主從端口的。在NIOS開發(fā)板上,要實現(xiàn)NIOS系統(tǒng)與FPGA片外存儲器通信,就必須在Avalon總線和連接外部存儲器的總線之間添加一個橋,這個橋就是Avalon三態(tài)總線。

在如圖8.10中選擇為Avalon外部總線添加寄存器。

(8)添加串行通信設備UART。

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

圖8.10設置Avalon外部總線 圖8.11添加串行通信設備UART

(9)添加LCD顯示。

使用標準16027字符型液晶顯示器。

(10)添加片上RAM。

如圖8.12所示,為SOPC系統(tǒng)添加片上RAM資源,并設置RAM參數(shù)。

(11)添加systemid。

(12)添加8個LED和輸入設備按鍵開關。

以上幾個步驟包含了一個標準SOPC一般所需要的設備,根據(jù)下面信息欄中的提示把RAM的數(shù)據(jù)線連接到總線上。接下來指定Flash地址為基地址,自動分配基地址及中斷。

最后完成的SOPC模塊如圖8.13所示。

接下來就可以在QuartusII中搭建完整的系統(tǒng),加入鎖相環(huán)、定義管腳等,并進行編譯。這部分的內(nèi)容詳見本書其他章節(jié)的介紹。

需要注意的是由于Flash與SRAM共用一條數(shù)據(jù)總線,所以要把SRAM的片選關閉,如圖8.14所示。

至此,整體SOPC硬件系統(tǒng)搭建完畢,其原理圖如圖8.15所示。

這樣一個硬件系統(tǒng)規(guī)模已經(jīng)比較完整了,可以作一些設計,比如Flash讀寫、液晶顯示、串口傳輸?shù)裙δ堋0堰@些集合起來就可以用C++軟件編寫一個簡單的圖像處理算法。

下面介紹一下SOPC系統(tǒng)的軟件開發(fā)流程。

圖8.13建立的SOPC模塊

圖8.14關閉SRAM片選

圖8.15SOPC系統(tǒng)原理圖

8.3.2軟件開發(fā)流程

系統(tǒng)軟件設計具體工作如下。

(1)在用SOPCBuilder系統(tǒng)集成軟件進行硬件設計同時,開始編寫C/C++軟件,比如算法或控制程序。用戶可以使用現(xiàn)成的軟件庫和開放的操作系統(tǒng)內(nèi)核加快開發(fā)進程。

(2)在NIOSIIIDE中建立新的軟件工程時,IDE會根據(jù)SOPCBuilder對系統(tǒng)的硬件配置自動定制HAL(硬件抽象層)系統(tǒng)庫。這個系統(tǒng)庫可以為程序和底層硬件的通信提供接口驅(qū)動程序。

(3)使用NIOSIIIDE編譯調(diào)試軟件。

(4)在硬件邏輯已經(jīng)下載到開發(fā)板的基礎上將軟件下載到開發(fā)板上并在硬件上運行。

下面主要介紹使用SOPCBuilder來為一個NIOSⅡ嵌入式處理器系統(tǒng)進行軟件開發(fā)的過程,具體實現(xiàn)過程如下。

(1)進行硬件開發(fā),如8.3.1小節(jié)所示。

(2)啟動NIOSIIIDE。

首先在AlterSOPCBuilder中,單擊RunNIOSIIIDE,啟動NIOSIIIDE,如圖8.16所示。

圖8.16NIOSIIIDE界面

(3)新建軟件工程。

選擇“File”菜單的“New”菜單的“Project”選項,開啟“NewProject”對話框,選擇“C/C++Application”,如圖8.17所示。

(4)選擇軟件模板。

在新建軟件工程對話框中單擊“Next”按鈕,為SOPC系統(tǒng)選擇軟件模板,如圖8.18所示。

圖8.17新建軟件工程 圖8.18選擇軟件模板

(5)獲取SOPC系統(tǒng)信息。

單擊“SOPCBuilderSystem”右邊的“Browse”按鈕打開目錄對話框,從該工程目錄下找到“NIOSII_c.ptf”,因為NIOSIIIDE必須從這個文件獲取該系統(tǒng)的相關信息。打開該文件后,界面顯示如圖8.19所示。

圖8.19新建的軟件工程

單擊“Finish”按鈕,即可建立一個名為Hello_LED_0的軟件模板工程。

(6)編輯軟件代碼。

(7)設置工程優(yōu)化級別。

編譯之前我們先對項目進行一些設置,以使編譯器編譯出更高效、占用空間更小的代碼。右鍵單擊工程名稱,在彈出的菜單中選擇“Properties”選項,如圖8.20所示。

圖8.20設置工程屬性

單擊后打開工程屬性對話框,在“ConfigurationSettings”點擊“General”頁面,在“OptimizationLevel”(優(yōu)化級別)中選擇“Optimizesize(-Os)”,如圖8.21所示。

圖8.21工程優(yōu)化級別

(8)設置系統(tǒng)庫屬性。

右鍵單擊*_syslib[NIOSII_c]工程名稱,在彈出的菜單中選擇“Properties”選項,如圖8.22所示。

圖8.22設置系統(tǒng)庫屬性

在系統(tǒng)庫工程屬性對話框中,同樣在“ConfigurationSettings”點擊“General”頁面,在“OptimizationLevel”中選擇“Optimizesize(-Os)”,如圖8.23所示。

圖8.23系統(tǒng)庫工程優(yōu)化級別

然后,單擊該對話框左側(cè)的“SystemLibrary”打開“SystemLibrary”屬性頁面。將“Maxfiledescriptors:”欄改為4,清除“Cleanexit(flushbuffers)”和“Linkwithprofilinglibrary”,選上“Reduceddevicedrivers”和“SmallClibrary”,如圖8.24所示。

單擊“OK”按鈕,完成設置。以上設置主要目的是為了優(yōu)化程序,并減少程序占用內(nèi)存空間。

圖8.24設置系統(tǒng)庫其他屬性

(9)編譯。

右鍵單擊工程,在彈出的菜單中選擇“BuildProject”選項,開始進行軟件工程編譯(為使編譯過程更加順利,此時最好關閉殺毒軟件和其他占用電腦資源較大的軟件)。

如果工程設計無誤,可以看到以下信息:“Buildcompleted”。如果看到了該條提示,表示軟件編譯成功,可以看到程序占用空間等信息。

(10)調(diào)試。

將ByteBlasterII下載線接到FPGA實驗平臺的JTAG口,接上5V電源。選擇“Run”菜單下的“DebugAs”選項,選擇“NIOSIIHardware”,如圖8.26所示。

圖8.26打開調(diào)試界面

選擇后,NIOSIIIDE會打開調(diào)試界面(DebugPerspective)。可以在程序中設置斷點,運行停止在斷點處(圖8.27的箭頭處),如圖8.27所示。

圖8.27調(diào)試至斷點

單擊繼續(xù)執(zhí)行(Resume)按鈕,程序就會繼續(xù)運行。單擊暫停按鈕,程序暫停運行。單擊停止按鈕,將退出運行,如圖8.28所示。

圖8.28調(diào)試按鈕

如需對程序進行修改,單擊停止按鈕退出運行,然后單擊如圖8.29所示的按鈕回到C/C++編輯界面。

選擇后,即可返回程序編輯界面修改代碼,然后后再重復上述調(diào)試過程。

(11)編譯并下載。

編寫完軟件工程后,我們還要回到QuartusⅡ里面對整個系統(tǒng)進行編譯。選擇“Processing”菜單下面的“StarCompilation”。編譯成功以后我們就可以選擇“Tools”菜單里面的“Programmer”,下載整個配置到FPGA中去了。

至此整個SOPC系統(tǒng)的軟硬件開發(fā)流程就已經(jīng)介紹完畢。讀者可以動手設計自己的SOPC系統(tǒng)了。



評論


相關推薦

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

關閉