當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]浮點(diǎn)模型的定點(diǎn)化到產(chǎn)品級代碼的生成

浮點(diǎn)轉(zhuǎn)換為定點(diǎn)是嵌入式軟件開發(fā)中的一個重要步驟,這項(xiàng)工作非常繁瑣,需要大量人力并且容易產(chǎn)生錯誤。用浮點(diǎn)數(shù)學(xué)設(shè)計(jì)的算法表示理想的算法行為,經(jīng)常必須轉(zhuǎn)換為定點(diǎn)數(shù)學(xué),才能用于更加經(jīng)濟(jì)的、只支持整數(shù)的大規(guī)模生產(chǎn)的硬件。轉(zhuǎn)換后,位精確的定點(diǎn)仿真使您在將該設(shè)計(jì)嵌入到硬件之前就能夠研究定點(diǎn)數(shù)據(jù)類型的行為。


本文使用具有容錯能力的燃料系統(tǒng)模型作為示例,描述了將浮點(diǎn)模型定點(diǎn)化并生成產(chǎn)品級代碼的工具和工作流程。涵蓋的主題包括:


* 準(zhǔn)備模型和數(shù)據(jù)

* 分析、改進(jìn)以及優(yōu)化定點(diǎn)定標(biāo)

* 生成優(yōu)化代碼


此處描述的方法采用 Simulink Fixed Point 中的兩種工具:Fixed-Point Advisor 和 Fixed-Point Tool。


準(zhǔn)備模型和數(shù)據(jù)進(jìn)行轉(zhuǎn)換


容錯燃料系統(tǒng)模型包含三個主要組件:ECU 控制器、發(fā)動機(jī)氣動力學(xué)設(shè)備以及幾個傳感器。在本文中,我們著重講述 ECU 控制器。


Fixed-Point Advisor 是一個交互式工具,旨在加速模型準(zhǔn)備過程


圖1: 通過 Fixed-Point Advisor 準(zhǔn)備模型。


使用 Fixed-Point Advisor,我們可完成下列步驟(在下面會詳細(xì)討論):


* 替換不支持的模塊。

* 設(shè)置信號記錄并創(chuàng)建初始參考數(shù)據(jù)。

* 指定目標(biāo)硬件特性。

* 準(zhǔn)備數(shù)據(jù)類型和定標(biāo)。

* 執(zhí)行初始數(shù)據(jù)類型和定標(biāo)。

* 檢查模型對于產(chǎn)品級代碼部署的適宜性。


替換不支持的模塊


Fixed Point Advisor 會檢查模型里是否有不支持定點(diǎn)數(shù)據(jù)類型的模塊。連續(xù)的模塊將被離散的模塊替換。Simulink 模塊支持的數(shù)據(jù)類型列表表明大多數(shù)模塊支持定點(diǎn)數(shù)據(jù)類型。與成百個嵌入式 MATLAB 函數(shù)(包括嵌入式算法設(shè)計(jì)中通常使用的函數(shù))一樣,Stateflow 完全支持定點(diǎn)數(shù)據(jù)類型。


設(shè)置信號記錄并創(chuàng)建初始參考數(shù)據(jù)


在仿真過程中,會記錄諸如輸入和輸出信號等感興趣的信號,以用于與浮點(diǎn)模型的等值比較以及代碼生成。我們可以記錄所有信號,或者從模型子系統(tǒng)層級中選擇信號,包括未命名的信號。


指定目標(biāo)硬件特性


Fixed Point Advisor 會提醒我們?yōu)樽址?、整型、長字節(jié)和其他對特定處理器而言獨(dú)特的屬性指定正確的字長,以避免仿真或代碼生成時產(chǎn)生錯誤結(jié)果。


準(zhǔn)備數(shù)據(jù)類型和定標(biāo)


在初始設(shè)計(jì)中,工程師通常使用繼承數(shù)據(jù)類型傳遞,以加速原型設(shè)計(jì)并快速迭代幾個設(shè)計(jì)。當(dāng)項(xiàng)目接近產(chǎn)品化時,他們會調(diào)整并指定每個數(shù)據(jù)類型并定標(biāo),以優(yōu)化定點(diǎn)結(jié)果。


Fixed-Point Advisor 通過自動執(zhí)行下列步驟,可加速此工作流程:


* 去除輸出數(shù)據(jù)類型的繼承,以幫助避免數(shù)據(jù)類型傳遞沖突。

* 放寬可能導(dǎo)致數(shù)據(jù)類型傳遞錯誤的輸入數(shù)據(jù)類型的設(shè)置或限制。

* 確定需要我們指定用于定點(diǎn)轉(zhuǎn)換的設(shè)計(jì)最小值和最大值的模塊。

執(zhí)行初始數(shù)據(jù)類型和定標(biāo)


依據(jù)我們的初始輸入,F(xiàn)ixed-Point Advisor 可為輸入模塊、常數(shù)、參數(shù)以及具有中間數(shù)據(jù)類型的模塊(例如求和模塊)建議數(shù)據(jù)類型和初始定標(biāo)。該工具使用設(shè)計(jì)或仿真浮點(diǎn)數(shù)據(jù)的最小值和最大值,建議初始定點(diǎn)數(shù)據(jù)定標(biāo)。該工具可報(bào)告定標(biāo)沖突并提出解決沖突的方法。然后,檢查數(shù)值錯誤并分析記錄的信號。


于是生成了初步定標(biāo)的定點(diǎn)模型,以及比較浮點(diǎn)到定點(diǎn)模型結(jié)果的方案。


檢查模型對于產(chǎn)品級代碼部署的適宜性


我們使用 Fixed-Point Advisor 來運(yùn)行最終檢查,以確定該模型對于產(chǎn)品級代碼部署的適宜性。包括:


* 指出可生成昂貴的飽和和舍入代碼的模塊。

* 指出有問題的定點(diǎn)操作,例如確保定點(diǎn)查找表有足夠的空間,以最大化代碼效率。


分析、改進(jìn)以及優(yōu)化定點(diǎn)定標(biāo)


使用 Fixed-Point Tool 可在您的模型中互動地分析、改進(jìn)以及優(yōu)化定點(diǎn)定標(biāo)。該工具首先確定溢出和/或飽和的定點(diǎn)值。然后,通過臨時將所有信號轉(zhuǎn)換為浮點(diǎn)精度并執(zhí)行另一個仿真運(yùn)行,找到定標(biāo)的合適動態(tài)范圍。合適的動態(tài)范圍用于計(jì)算對于每個模塊而言更合適的定點(diǎn)定標(biāo)。然后,我們接受或拒絕每個信號的建議定標(biāo)。我們還可配置該工具,以忽略所選的模塊,使您能夠?qū)为?dú)定標(biāo)的模塊使用自動定標(biāo)。


圖2:利用 Fixed-Point Tool 對容錯燃料系統(tǒng)模型進(jìn)行自動定標(biāo)。

[!--empirenews.page--]
顯示了用于容錯燃料系統(tǒng)模型的工具及其建議的定標(biāo)。注意,上述步驟可用于相同的模型,使您能夠?qū)τ诟↑c(diǎn)設(shè)計(jì)和定點(diǎn)設(shè)計(jì)使用一個模型,并減少在設(shè)計(jì)迭代過程中維護(hù)獨(dú)立模型的需求。


在整個過程中,比較圖提供快速且簡單的方法,分析和對比定點(diǎn)設(shè)計(jì)和浮點(diǎn)設(shè)計(jì)的行為

圖3:比較當(dāng)前定點(diǎn)結(jié)果與參考浮點(diǎn)結(jié)果,以及這些結(jié)果之間的差別。


生成優(yōu)化代碼


我們可使用 Real-Time Workshop Embedded Coder 生成針對不同目標(biāo)的代碼。如果我們選擇默認(rèn) ANSI/ISO C 代碼選項(xiàng),可在具有指定字長的任何目標(biāo)上部署可移植代碼。我們還通過使用目標(biāo)函數(shù)庫來利用處理器優(yōu)化的代碼,以將生成的數(shù)學(xué)函數(shù)、數(shù)學(xué)運(yùn)算符以及內(nèi)存分配函數(shù)(例如 memcpy)自動替換為特定于目標(biāo)的形式。圖 4:定點(diǎn) ANSI C 代碼與為 Infineon TriCore 處理器優(yōu)化的使用目標(biāo)函數(shù)庫定點(diǎn)代碼的比較。 比較具有飽和邏輯的 32 位整數(shù)定點(diǎn)相加的 ANSI C 代碼與 Infineon TriCore 優(yōu)化代碼。


圖4:定點(diǎn) ANSI C 代碼與為 Infineon TriCore 處理器優(yōu)化的使用目標(biāo)函數(shù)庫定點(diǎn)代碼的比較。


位精確的定點(diǎn)仿真可幫助您在 Simulink 環(huán)境內(nèi)對設(shè)計(jì)建模。Simulink Fixed Point 提供的工具可讓您自動化定點(diǎn)轉(zhuǎn)換工作流程的耗時部分,并研究設(shè)計(jì)以進(jìn)一步改進(jìn)定點(diǎn)性能。Real-Time Workshop Embedded Coder 對產(chǎn)品級代碼部署提供一種自動化途徑。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉