<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 浮點(diǎn)模型的定點(diǎn)化到產(chǎn)品級代碼的生成

浮點(diǎn)模型的定點(diǎn)化到產(chǎn)品級代碼的生成

作者: 時(shí)間:2011-11-28 來(lái)源:網(wǎng)絡(luò ) 收藏

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

本文引用地址:http://dyxdggzs.com/article/150023.htm


本文使用具有容錯能力的燃料系統作為示例,描述了將定點(diǎn)化并的工具和工作流程。涵蓋的主題包括:


* 準備和數據

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

* 優(yōu)化


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


準備模型和數據進(jìn)行轉換


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


Fixed-Point Advisor 是一個(gè)交互式工具,旨在加速模型準備過(guò)程

圖1


圖1: 通過(guò) Fixed-Point Advisor 準備模型。


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


* 替換不支持的模塊。

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

* 指定目標硬件特性。

* 準備數據類(lèi)型和定標。

* 執行初始數據類(lèi)型和定標。

* 檢查模型對于部署的適宜性。


替換不支持的模塊


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


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


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


指定目標硬件特性


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


準備數據類(lèi)型和定標


在初始設計中,工程師通常使用繼承數據類(lèi)型傳遞,以加速原型設計并快速迭代幾個(gè)設計。當項目接近化時(shí),他們會(huì )調整并指定每個(gè)數據類(lèi)型并定標,以?xún)?yōu)化定點(diǎn)結果。


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


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

* 放寬可能導致數據類(lèi)型傳遞錯誤的輸入數據類(lèi)型的設置或限制。

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

執行初始數據類(lèi)型和定標


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


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


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


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


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

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


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


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

圖2


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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>