久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

ABB
關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2025工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于NOIS處理器的定制硬件技術(shù)研究
  • 企業(yè):    
  • 點(diǎn)擊數(shù):535     發(fā)布時(shí)間:2023-05-15 07:29:46
  • 分享到:

文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1003-0492(2023)04-076-04中圖分類號(hào):TP919

★劉元元(東方電氣集團(tuán)(四川)物產(chǎn)有限公司,四川德陽618000)

摘要:基于系統(tǒng)級(jí)FPGA的SOPC嵌入式設(shè)計(jì)特點(diǎn),采用SOPC Builder設(shè)計(jì)工具可以有選擇地將處理器、存儲(chǔ)器、I/O等系統(tǒng)設(shè)計(jì)所需的IP組件集成到FPGA器件上,也可以通過自定義用戶邏輯集成到FPGA器件上,從而構(gòu)建高效SOC。本文分析了嵌入式處理器NOIS軟核特性,并給出了基于NOIS內(nèi)核的SOPC軟硬件開發(fā)流程和自定義用戶邏輯的軟硬件設(shè)計(jì)過程。

關(guān)鍵詞:FPGA;片上系統(tǒng);可編程片上系統(tǒng);NOIS軟核

近年來,隨著現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)器件的發(fā)展,以及SOPC技術(shù)的成熟,采用Nios Ⅱ軟核處理器在FPGA上實(shí)現(xiàn)系統(tǒng)級(jí)功能算法成為可能。Nios II軟核處理器是Altera公司推出的嵌入在其FPGA內(nèi)部的32位軟核處理器,且其內(nèi)核僅占用很少的邏輯資源,另外它的可配置程度極高,不但可以根據(jù)用戶需求加入各種標(biāo)準(zhǔn)接口,如各種外部存儲(chǔ)器、以太網(wǎng)控制器、IDE驅(qū)動(dòng)器、USB接口等,也可以將用戶自己定義的接口模塊和邏輯模塊加入其中,必要的時(shí)候還可以在Nios II軟核中加入實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)了對(duì)多任務(wù)的調(diào)度,這讓用戶可以隨心所欲地構(gòu)建完全符合系統(tǒng)要求的處理器結(jié)構(gòu)。在FPGA外部只需要添加配置芯片、SDRAM、FLASH就可以構(gòu)成一個(gè)完整的硬件平臺(tái),很好地體現(xiàn)了SOPC的設(shè)計(jì)思想,使系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、成本低廉、保密性好的特點(diǎn)。在性能上,系統(tǒng)可以利用FPGA的并行處理能力提高系統(tǒng)性能,如采用定制自定義模塊,用硬件控制耗時(shí)大的軟件算法模塊來提高系統(tǒng)性能,也可以采用NiosⅡ處理器的自定義指令方式用硬件實(shí)現(xiàn)部分復(fù)雜算法片段,方便在軟件程序中調(diào)用,大大提高了程序執(zhí)行效率。另外,還可以用新推出的C2H工具直接將一些軟件程序進(jìn)行硬件化,不僅提高了系統(tǒng)性能,還保證了本系統(tǒng)很高的處理速度,具有很好的實(shí)時(shí)性。

1 SOPC的設(shè)計(jì)

SOPC即System On a Programmable Chip,是指用可編程邏輯器件把整個(gè)系統(tǒng)放到一塊硅片上。一方面它是片上系統(tǒng)—即由單個(gè)芯片完成整個(gè)系統(tǒng)的主要邏輯功能;另一方面,它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、擴(kuò)充、升級(jí),并具備軟硬件在系統(tǒng)可編程的功能。這項(xiàng)技術(shù)將EDA、計(jì)算機(jī)設(shè)計(jì)、嵌入式系統(tǒng)、工業(yè)自動(dòng)控制系統(tǒng)、DSP及數(shù)字通訊系統(tǒng)融為一體。

一個(gè)最小系統(tǒng)應(yīng)該包括中央處理單元(CPU)、隨機(jī)存儲(chǔ)器(RAM)和FlashROM(存儲(chǔ)代碼、數(shù)據(jù)等),稍微復(fù)雜點(diǎn)的系統(tǒng)至少應(yīng)該包括UART、DMA、Timer、中斷管理模塊以及GPIO等。

我們知道,F(xiàn)PGA支持用戶自定義的硬件,即用戶自己設(shè)計(jì)的IP核。在許多應(yīng)用中,我們可以利用這一特性,使用硬件描述語言來定制適合系統(tǒng)特性的模塊。例如,F(xiàn)PGA中沒有AD模塊,必須外加AD芯片。其他MCU控制AD芯片必須通過軟件來實(shí)現(xiàn),對(duì)FPGA來說,則可以將此AD芯片的控制工作集成到一個(gè)VHDL或VERLOG模塊中,綜合后集成到SOPC系統(tǒng)中,實(shí)現(xiàn)定制外設(shè)。通過這一步,此AD就可以看成FPGA的一個(gè)內(nèi)部外設(shè),而不必像其他MCU那樣通過指令來模擬AD芯片時(shí)序。相比之下,F(xiàn)PGA能提高效率并減少出錯(cuò)率,因?yàn)槠浔举|(zhì)還是通過硬件來實(shí)現(xiàn)讀取的功能。

2 SOPC Builder

SOPC Builder是Altera公司推出的一種可加快在FPGA內(nèi)實(shí)現(xiàn)嵌入式處理器相關(guān)設(shè)計(jì)的工具,其功能與PC應(yīng)用程序中的引導(dǎo)模板(Wizard)類似,旨在提高設(shè)計(jì)者確定需要的處理器和參數(shù),并根據(jù)此創(chuàng)建一個(gè)處理器的完整存儲(chǔ)器映射。設(shè)計(jì)者還可以選擇所需要的IP外圍電路,如存儲(chǔ)控制器、I/O控制器和定時(shí)器等模塊。當(dāng)然,也支持用戶自定義的硬件。

SOPC Builder具有友好的圖形用戶接入,可以為用戶提供強(qiáng)大的設(shè)計(jì)平臺(tái)以搭建基于AVALON總線的系統(tǒng)。用戶不僅可以從ALTERA提供的IP庫中選取組件、處理器、SDRAM、FLASH、USB、以太網(wǎng)等,也可以選擇配置相應(yīng)的參數(shù),還有包含操作系統(tǒng)內(nèi)核的嵌入式軟件開發(fā)工具。在進(jìn)行SOPC設(shè)計(jì)時(shí),如果用戶有特殊功能要求,但I(xiàn)P庫中沒有,則可加入自定義邏輯實(shí)現(xiàn)。通過QUARTUS II工具可完成SOPC的全部設(shè)計(jì),QUARTUS II用戶能把一個(gè)基于NIOS處理器的系統(tǒng)經(jīng)生成、仿真的編譯后,下載到ALTERA的FPGA芯片中,并進(jìn)行實(shí)時(shí)評(píng)估和驗(yàn)證。SOPC Builder可自動(dòng)進(jìn)行開發(fā)中的系統(tǒng)定義和集成過程,實(shí)現(xiàn)了嵌入式系統(tǒng)的各方面開發(fā),包括研究的設(shè)計(jì)和驗(yàn)證。SOPC Builder的設(shè)計(jì)流程為描述系統(tǒng)和生成系統(tǒng)。

SOPC Builder提供了一組圖形界面以方便用戶描述系統(tǒng),該界面列出了所有可用的系統(tǒng)模塊,設(shè)計(jì)者在界面中挑選其所設(shè)計(jì)的系統(tǒng)所需模塊,并設(shè)置參數(shù),界面本身不生成邏輯或軟件,其目標(biāo)是形成一個(gè)“系統(tǒng)描述文件”。

SOPC Builder根據(jù)系統(tǒng)描述文件進(jìn)行操作:(1)對(duì)需要軟件支持的模塊,如NOIS處理器。(2)調(diào)用每個(gè)模塊的生成程序,最終生成一個(gè)系統(tǒng)級(jí)的HDL文件。(3)創(chuàng)建Modelsim所需的文件,以便仿真使用。(4)系統(tǒng)綜合。(5)生成TCL腳本。

3 嵌入式處理器NOIS軟核

Altera公司的Nios是基于RISC技術(shù)的通用嵌入式處理器軟內(nèi)核,它專為可編程邏輯進(jìn)行了優(yōu)化設(shè)計(jì),也為SOPC設(shè)計(jì)了一套綜合解決方案。Nios處理器采用16位指令集、16/32位數(shù)據(jù)通道、5級(jí)流水線技術(shù),平均一個(gè)時(shí)鐘周期處理一條指令,性能高達(dá)50MIPS。NiosV2.1處理器具有以下主要特征:(1)大容量窗口寄存器堆。其最大可以實(shí)現(xiàn)512個(gè)內(nèi)部通用寄存器,編譯程序運(yùn)用內(nèi)部寄存器可以加快子程序的調(diào)用和局部變量的存取。(2)簡(jiǎn)單完備的指令集。32位和16位的Nios系統(tǒng)都運(yùn)用16位寬的指令,這減少了代碼長(zhǎng)度和指令存儲(chǔ)區(qū)的寬度。(3)強(qiáng)大的尋址模式。Nios指令集包括裝載和存儲(chǔ)指令,這樣編譯程序可加快結(jié)構(gòu)體和局部變量(存儲(chǔ)棧)的存取。(4)較強(qiáng)的可擴(kuò)展性。用戶可直接把定制邏輯集成入Nios算術(shù)邏輯單元(ALU)內(nèi),并自動(dòng)生成包含C語言和匯編語言下訪問定制指令硬件的宏指令的軟件開發(fā)工具包(SDK)。(5)硬件輔助功能。用戶可利用硬件的優(yōu)點(diǎn)去另創(chuàng)一些指令,從而促進(jìn)指令執(zhí)行速度。它可以有5條用戶定制指令,用戶可以把復(fù)雜的工作變成一個(gè)單一的指令。

4 NIOS Ⅱ軟核

Nios Ⅱ是一個(gè)用戶可配置的通用RISC嵌入式處理器,Altera推出的Nios Ⅱ系列嵌入式處理器擴(kuò)展了目前世界上最流行的軟核嵌入式處理器的性能。把Nios Ⅱ嵌入到Altera的所有FPGA中,例如Stratix Ⅱ、Stratix、Cyclone Ⅱ、cyclone、APEX、ACEX和Hardcopy系列器件中,用戶可獲得超過200DMIPS的性能,并可以從三種處理器以及超過60個(gè)IP核中選擇所需要的。Nios Ⅱ系統(tǒng)為用戶提供了最基本的多功能性,設(shè)計(jì)師可以依此來創(chuàng)建一個(gè)最適合他們需要的嵌入式系統(tǒng)。使用Nios Ⅱ處理器的用戶可以根據(jù)他們的需要來調(diào)整嵌入式系統(tǒng)的特性、性能以及成本,使得產(chǎn)品快速推向市場(chǎng),擴(kuò)展了產(chǎn)品的生命周期,還可以避免處理器的更新?lián)Q代。

4.1 開發(fā)工作流程

(1)初期開發(fā)工作:需要軟硬件結(jié)合處理,對(duì)系統(tǒng)進(jìn)行需求分析。比如:CPU是否需要一個(gè)硬件加速乘法器,設(shè)計(jì)中所需要的外圍器件及數(shù)量,是否需要DMA通道釋放CPU在進(jìn)行拷貝時(shí)所占用的資源;

(2)硬件開發(fā):用SOPC Builder定義Nios Ⅱ處理器系統(tǒng),用Quartus Ⅱ軟件定義器件、分配管腳并編譯;

(3)軟件開發(fā):C/C++程序開發(fā),開發(fā)鼎峙硬件的驅(qū)動(dòng)程序,定義硬件平臺(tái)為目標(biāo)進(jìn)行編譯連接;

(4)下載到開發(fā)板上進(jìn)行驗(yàn)證;

(5)成功完成Nios Ⅱ系統(tǒng)設(shè)計(jì)。

4.2 硬件開發(fā)流程

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

系統(tǒng)需外接按鈕接口時(shí),可通過用戶自定義邏輯用VHDL編程來實(shí)現(xiàn)按鈕并行計(jì)數(shù)的功能。用戶邏輯要與Nios處理器進(jìn)行通信,需增加片選chipselect和地址address2個(gè)信號(hào)。其中當(dāng)chipselect為1時(shí),Nios處理器選中用戶邏輯。Nios處理器用地址信號(hào)來尋址用戶邏輯。通過address信號(hào),用戶邏輯才能正確地連到總線上與Nios處理器進(jìn)行通信。對(duì)于獨(dú)立的用戶邏輯,如不需與Nios進(jìn)行通信,比如實(shí)現(xiàn)獨(dú)立并行計(jì)數(shù)和顯示的功能,則片選信號(hào)和地址信號(hào)不需要。當(dāng)在用戶邏輯里加入片選信號(hào)和地址信號(hào)后,SOPC Builder會(huì)自動(dòng)給用戶邏輯分配一個(gè)基地址。SOPC Builder對(duì)系統(tǒng)中包括用戶邏輯在內(nèi)的所有組件統(tǒng)一進(jìn)行編址,若實(shí)例需處理3個(gè)按鈕并行計(jì)數(shù),則地址信號(hào)需要2位。2位地址信號(hào)可處理4個(gè)地址,這里只用3個(gè):00、01和10。地址信號(hào)在VHDL中所形成的地址,比如00、01,是相對(duì)地址。相對(duì)地址與基地址結(jié)合在一起,形成絕對(duì)地址。比如,第1個(gè)按鈕的計(jì)數(shù)值分配到相對(duì)地址“00”中,則絕對(duì)地址為0x4A0+0﹡4=0x4A0,第3個(gè)按鈕的計(jì)數(shù)值分配到相對(duì)地址“10”中,則絕對(duì)地址為0x4A0+2﹡4=0x4A8,其中0x4A0是系統(tǒng)分配的基地址。在計(jì)算絕對(duì)地址時(shí),相對(duì)地址乘4,因?qū)嵗龑?shí)現(xiàn)的是32位Nios處理器,每個(gè)寄存器占據(jù)32位,而地址是按字節(jié)分配的,所以32/8=4。當(dāng)應(yīng)用程序訪問這些地址時(shí),無論讀還是寫,片選信號(hào)自動(dòng)被設(shè)置為“1”。則應(yīng)用設(shè)計(jì)的VHDL程序代碼為:

Asicl=(int*)0X4A0;//指定要訪問的地址;

Read-datal=*asicl;//讀取地址中的內(nèi)容,則片選信號(hào)chipselect自動(dòng)被設(shè)置為“1”。

對(duì)于地址信號(hào)的選擇,則要在應(yīng)用程序中明確指定,比如上面代碼中指定訪問的地址是“0x4A0”。實(shí)現(xiàn)用戶邏輯設(shè)計(jì)VHDL代碼的實(shí)體說明部分為:

ENTITYtestIS

port(clock:IN STD-LOGIC

pb-gen-counr1:IN STD-LOGIC;

pb-gen-counr2:IN STD-LOGIC;

pb-gen-counr3:IN STD-LOGIC;

pb-gen-clcar:IN STD-LOGIC;

chipselect:IN STD-LOGIC;

address:IN STD-LOGIC-VECTOR(1 dorwnto0);

count-out:INSTD-LOGIC-VECTOR(7 dorwnto 0);END tesk

實(shí)體中結(jié)構(gòu)部分的輸出如下,其中的temp1、temp2、temp3是內(nèi)部信號(hào),用以保存3個(gè)按鈕的計(jì)數(shù)值。使用的是并行語句,保證3個(gè)按鈕可并行計(jì)數(shù)。count-out<=temp1 when(chipselect=‘1’andaddress=“00”)else

temp2 when(chipselect=‘1’andaddress=“01”)else

temp3 when(chipselect=‘1’andaddress=“10”)else

“00000000”;

需把用戶邏輯連接到Nios處理器中,在SOPCBuilder的圖形用戶界面中,選擇添加用戶邏輯項(xiàng),加入用戶編寫的VHDL文件,同時(shí)指定實(shí)體說明中各信號(hào)的類型。Clock被指定為“clk”類型,Pb-gencounr1等被指定為“expor1”類型,chipselect被指定為“chipselect”類型,address被指定為“address”類型,count-out被指定為“readdata”類型。然后,SOPCBuilder自動(dòng)生成一個(gè)Nios處理器軟核及相關(guān)外設(shè)的源文件。最后工作是編譯整個(gè)項(xiàng)目,并把生成的后綴為sof的文件下載到開發(fā)板上的可編程芯片中。

4.3 軟件開發(fā)流程

系統(tǒng)軟件設(shè)計(jì)具體工作如下:

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

(2)在Nios ⅡIDE中建立新的軟件工程時(shí),IDE會(huì)根據(jù)SOPC Builder對(duì)系統(tǒng)的硬件配置自動(dòng)定制HAL(硬件抽象層)系統(tǒng)庫,這個(gè)系統(tǒng)庫可以為程序和底層硬件的通訊提供接口驅(qū)動(dòng)程序;

(3)使用Nios ⅡIDE編譯調(diào)試軟件;

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

5 結(jié)束語

SOPC技術(shù)利用IP庫,并通過SOPCBuilder可快速生成嵌入式系統(tǒng),同時(shí),可把用戶自定義的邏輯加入到系統(tǒng)中。通過SOPC還可向Nios處理器中添加用戶自定義的指令,擴(kuò)充了Nios指令集,體現(xiàn)了用SOPC設(shè)計(jì)嵌入式系統(tǒng)的靈活性,快速生成了最終產(chǎn)品,縮短了開發(fā)周期。基于系統(tǒng)級(jí)FPGA/CPLD的SOPC嵌入式系統(tǒng)的開發(fā)設(shè)計(jì)是一個(gè)新課題,需要了解開發(fā)設(shè)計(jì)的方法、普及EDA工具以及獲得IP核等。本文對(duì)SOPC的探討對(duì)推動(dòng)SOPC的應(yīng)用具有一定的實(shí)際借鑒意義。SOPC必將在通信、工業(yè)控制、計(jì)算機(jī)相關(guān)產(chǎn)品和消費(fèi)類電子等各個(gè)領(lǐng)域中獲得廣泛的應(yīng)用。

作者簡(jiǎn)介:

劉元元(1979-),女,河南平輿人,工程師,學(xué)士,現(xiàn)就職于東方電氣集團(tuán)(四川)物產(chǎn)有限公司,主要研究方向?yàn)榍度胧焦た仡I(lǐng)域和新能源發(fā)電設(shè)備。

參考文獻(xiàn):

[1] Anna S. Chiang. 可編程片上系統(tǒng)要求新的設(shè)計(jì)方法[J]. 半導(dǎo)體技術(shù), 2001, 26 (8) : 5 - 7.

[2] Altera公司. SOPC Builder Data Sheet[M]. 美國(guó): 美國(guó)Altera, 2002.

[3] 黃曉林, 蔣偉榮. SoC與IP復(fù)用及其應(yīng)用策略[J]. 現(xiàn)代電子技術(shù), 2003, 159 (16) : 1 - 4.

[4] 黃曉林, 梁玉紅. SoC及其應(yīng)用[J]. 廣東自動(dòng)化與信息工程, 2003, 24 (3) : 7 - 10.

[5] 何立民. 以SoC為中心的多學(xué)科融合與滲透[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2001 (5) : 5 - 9.

[6] ALTERA. Nios Development Board Reference Marual[Z]. Cyclone Edition, ALTERA Inc, 2003, 5.

[7] ALTERA. SOPC Builder datasheet[Z]. ALTERA Inc, 2003, 1.

摘自《自動(dòng)化博覽》2023年4月刊

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 特级av毛片免费观看 | 国内精品久久国产 | 久久久窝窝午夜精品 | 女人牲交一级毛片 | 成人国产精品高清在线观看 | 欧美一级特黄毛片视频 | 在线网站你懂的 | 国产一区二区三区在线观看影院 | 国产一级aaa全黄毛片 | 亚洲欧美日韩精品久久亚洲区 | 国产合集91合集久久日 | 欧美精品亚洲一区二区在线播放 | 中国欧美一级毛片免费 | 加勒比色老久久爱综合网 | 激情影院成人区免费观看视频 | 一级裸片 | 国产精品亚洲精品观看不卡 | 在线免费看网站 | 青青青国产在线手机免费观看 | 免费无遮挡嘿嘿嘿视频动态 | 日操夜操天天操 | 久草免费色站 | 欧美高清一区二区三 | 婷婷影院在线综合免费视频 | 一级黑寡妇毛片免费视频 | 中国一级特黄高清免费的大片 | 男人的天堂久久精品激情 | 毛片黄色 | 国内女高中生一级毛片 | 天天天色| 女人被狂躁的视频免费动图 | 国产日本一区二区三区 | 日本护士69xxxx免费 | 欧美日韩在线看 | 国产成人精品综合久久久 | 婷婷播放器 | a级毛片视频免费观看 | 国产欧美精品一区二区三区-老狼 | 日韩在线二区 | 成人免费视频网址 | 91中文字幕在线观看 |