日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]采用Nios定制指令的嵌入式系統(tǒng)優(yōu)化設計

摘要:Altera公司的Nios軟核處理器以其低成本,設計靈活等特點,在嵌入式應用領域得到廣泛的應用。采用Nios處理器的定制指令,可以把用戶自定義的功能直接添加到Nios CPU的算術邏輯單元中,加快專項任務的執(zhí)行,以達到優(yōu)化目的。本文在闡述Nios定制指令設計的基礎上,給出相應的設計例子說明。

    關鍵詞:Nios軟核 定制指令 嵌入式處理器MP3

引言

Nios處理器是Altera公司推出的一個32/16位精簡指令信處理器軟核。在Altera公司推出的軟件SOPC中加載Nios核 和相應的外圍接口以及與定義相應的自定義指令,然后對設計進行綜合,下載到FPGA中就可以方便地一個具有特定功能的嵌入式處理器。這種設計思路增加了系統(tǒng)設計的靈活性,加快系統(tǒng)運行速度,縮短產(chǎn)品研發(fā)和上市時間。

由硬件實現(xiàn)復雜的算法通常比軟件實現(xiàn)更高效。利用Altera的Niso嵌入式處理器的定制指令,可以把用戶自定義的功能直接添加到Niso CPU的算術邏輯單元(ALU)中(見圖1),來加快專項任務的執(zhí)行,從而達到系統(tǒng)優(yōu)化的目的。因此,設計者可以針對關鍵的內(nèi)部循環(huán)和耗時算法,創(chuàng)建Nios嵌入式處理器的定制指令,把復雜的順序指令簡化為硬件實現(xiàn)的單指令,這樣就能夠大大提高系統(tǒng)性能。例如,Nios CPU執(zhí)行浮點乘法運算要2800多個時鐘周期;而浮點乘法的定制指令采用了浮點單元(FPU),執(zhí)行只需19個時鐘周期。

1 定制指令

定制指令為Nios處理器的算術邏輯單元增加了定制邏輯,設計者通過定制指令,用快速高效的定制邏輯塊替代復雜耗時的軟件程序。在一個CPU中,可以運行多達五個組合或時序定制模塊,還可以訪問Nios系統(tǒng)模塊外的存儲器和/或邏輯。定制邏輯模塊在兩個寄存器Ra和Rb內(nèi)容的基礎上執(zhí)行用戶定義的操作,結果存放在寄存器Ra中。這些定制邏輯模塊的功能只受限于器件內(nèi)邏輯單元(LE)和設計得的想象力。

定制硬件模塊能夠通過Nios嵌入式處理器指令集中的五個用戶定義操作碼來訪問。SOPC Builder在生成系統(tǒng)期間會為任何定制指令創(chuàng)建宏,通過這些自動產(chǎn)生的C和匯編語言宏就可以方便地訪問自定義指令操作碼。

2 實現(xiàn)定制指令

以Altera的Nios2.0版嵌入式處理器為例實現(xiàn)定制指令,同時點擊Custom Instructions標簽創(chuàng)建或編輯Nios CPU,如圖2。

Custom Instruction標簽是系統(tǒng)設計都 連接定制邏輯和Nios CPU的ALU的界面。首先,選擇定制指令的操作碼,有USR0~USR4五個操作碼可供使用。然后,導入和掃描作為定制指令的HDL文件。Design Import Wizard掃描頂層模塊的端口,進行合適連接。Design Import Wizard可以接受以下類型的文件:VerilogHDL/VHDL/EDIF/VQM以接受以下類型的文件:Verilog HDL、VHDL、EDIF、VQM和Altera QuartusII原理圖。導入設計文件之后,分配定制指令所需的CPU時鐘周期數(shù)目和定制指令名。

在系統(tǒng)生成期間,SOPC Builder工具用作ALU一部分的定制邏輯來創(chuàng)建Nios CPU,受所選的操作碼控制軟件開發(fā)包用定制指令名創(chuàng)建在C/C++和匯編語言中使用的軟件宏。這些在定制軟件開發(fā)包ince下。

圖2 定制指令設計界面

    設計者通過創(chuàng)建的軟件宏訪問定制指令。在C/C++中,宏就像函數(shù)調(diào)用一樣使用。如果使用前綴端口,就要用前綴創(chuàng)建不同的宏。例如,為浮點單元(FPU)創(chuàng)建兩個C/C++宏。例如,為浮點單元(FPU)創(chuàng)建兩個C/C++宏是:

result=nm_fpu(data,datb); //不使用前綴

result=nm_fpu_pfx(prefix,data,data); //使用前綴

在匯編語言中,宏調(diào)用USR操作碼,按標準匯指令一樣使用。如果使用前綴,那么在宏之前必須有一個PFX指令。有關用戶定義操作碼(USR0~USR4)的詳細資料可參Nios Software Development Reference Manual。

3 MP3播放器的定制指令設計

以MP3播放器設計為例,采用定制指令對設計進行優(yōu)化。該設計通過增加兩條定制指令,就能使系統(tǒng)執(zhí)行性能提高大約3倍。圖為該MP3系統(tǒng)設計框圖。

(1)MP3解碼器

在大多數(shù)MP3播放器中,處理器是用來管理函數(shù)和傳輸數(shù)據(jù)的。專用MP3解碼器ASIC可用于執(zhí)行密集計算量的解碼和傳數(shù)據(jù)給音頻器件。本例中,Altera的Nios處理器用于完成處理控制信號,傳輸數(shù)據(jù)和進行MP3解碼。通常,MP3解碼器流程如下:

①通過IDE接口從CF(CompactFlash controler)中讀取MP3數(shù)據(jù);

②將MP3數(shù)據(jù)存入SPAM中緩存;

③對MP3數(shù)據(jù)解碼;

④將MP3邊帶合成到脈沖編碼調(diào)制(PCM)數(shù)據(jù);

⑤把PCM數(shù)據(jù)傳給脈寬調(diào)制器PWM。

此外,播放器采用MPEG Audio Decoder(MAD)進行MP3解碼,是基于以下方面:

①100%定點(整數(shù))計算;

②網(wǎng)上有可利用的源碼;

③在GNU Ceneral Public License(GPL)下發(fā)布。

(2)定制指令

    我們知道在執(zhí)行MP3解碼的過程中,大量時間花費在邊帶的合成上。因此,優(yōu)化Altera MP3的重點就落在函數(shù)mad_synth_frame上。我們可通過使用定制指令f_mul和DCT32來優(yōu)化該函數(shù)。

F_mul

F_mul和mad_f_mul是MAD使用的宏,用整數(shù)乘法來模擬浮點乘法。定義如下:

#define mad_f_mul(x,y)

((((x)+0x00002000L)>>14)×(((y)+0x00002000L))>>14)

#define f_mul(x,y)

(((x)|0x0001FFFFL) ((y)|0x0001FFFFL))

這些函數(shù)完成的功能是一組易被硬件實現(xiàn)的操作,包括移位、加法、乘法和邏輯或運算。在Altera MP3的優(yōu)化設計中,用硬件定制指令f_mul執(zhí)行原先用軟件宏;還可利用前綴選項,把兩個宏合為一個單定制指令。以下就是用Altera的定制指令定義(f_mul和mad_f_mul):

#define f_mul(x,y)nm_fmul((x),(y));

#define mad_f_mul(x,y)nm_fmul_pfx(1,(x),(y));

DCT32

在MP3解碼中,DCT32完成離散余弦變換。MAD軟件用優(yōu)化過的DVT來增強性能。從軟件角度來看,該優(yōu)化算法比起一般DCT對提高性能具有重大意義。因為標準DCT需要1024個乘法,而用優(yōu)化后的DCT只需80個乘法。

圖4 DCT32與mad_synth_frame軟件流程

    DCT32定制指令所用硬件由Celoxica提供,它是可重配置計算方案提供商,采用了基于HandelC的設計工具。Altera的DCT32定制指令按以下特點設計:

|①可以存儲32位輸入和32位輸出;

②在DCT計算時,能獨立于CPU工作;

③用前綴指令接受命令

——裝入/卸載

——啟動DCT計算

——輪詢是否完成。

因為定制指令可以輪詢,在DCT輸出前其它代碼可以并行運行。當需要DCT輸出時,定制指令被查詢,看是否已完成計算。如果完成,Nios處理器卸載輸出數(shù)據(jù),同時裝入下組輸入數(shù)據(jù)。圖4給出了DCT32定制指令及mad_synth_frame的流程圖。

(3)優(yōu)化前后比較

表1給出了三種情況下完成mad_synth_frame函數(shù)的比較結果。三種情況分別是只用硬件乘法指令,單用定制指令f_mul及f_mul和DCT32共用。

從表1中可以看出,f_mul是最有效的定制指令,系統(tǒng)規(guī)模僅僅增加3%,卻減少了77%的循環(huán)數(shù)目。規(guī)模增加很小是因為f_mul定制指令無需專用的硬件乘法器。

表1 三種情況比較

所用硬件 循環(huán)數(shù)目 邏輯元件(IE) 內(nèi)存位
只用硬件乘法 1 279 000 3 542 26 624
f_mul 293 000 3 642 26 624
f_mul和DCT32并行 231 600 4 331 30 528

DCT32指令運行在并行模式下,比起f_mul又減少了21%的循環(huán)數(shù)目,LE資源也只增加了18.9%。

把定制指令所需的額外資源和性能增加情況與只用硬件乘法的基準系統(tǒng)比較。用定制指令能減少執(zhí)行mad_synth_frame函數(shù)時所需的80%循環(huán)數(shù)目而只增加系統(tǒng)22.3%的規(guī)模。該MP3是在Nios開發(fā)面板上設計并運行的,頻率為33MHz。在不增加時鐘頻率的情況下,所有性能符合指標。如果需進一步提高性能,還可通過增大時鐘頻率,加大內(nèi)存,增加指令和數(shù)據(jù)緩存等方法來實現(xiàn)。

4 結論

采用Nios定制指令,系統(tǒng)設計得能夠把一系列順序執(zhí)行的指令簡化為通過硬件執(zhí)行的單個指令,從而簡化系統(tǒng)軟件設計并且 加快系統(tǒng)運行速度。同時充分利用了可編程邏輯器件通過硬件執(zhí)行速度快的優(yōu)點,和用于控制的Nios處理器進行了完美的結合。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉