新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 浮點模型的定點化到產品級代碼的生成

        浮點模型的定點化到產品級代碼的生成

        作者: 時間:2011-11-28 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/150023.htm


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


        * 準備和數據

        * 分析、改進以及優化定點定標

        * 優化


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


        準備模型和數據進行轉換


        容錯燃料系統模型包含三個主要組件:ECU 控制器、發動機氣動力學設備以及幾個傳感器。在本文中,我們著重講述 ECU 控制器。


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

        圖1


        圖1: 通過 Fixed-Point Advisor 準備模型。


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


        * 替換不支持的模塊。

        * 設置信號記錄并創建初始參考數據。

        * 指定目標硬件特性。

        * 準備數據類型和定標。

        * 執行初始數據類型和定標。

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


        替換不支持的模塊


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


        設置信號記錄并創建初始參考數據


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


        指定目標硬件特性


        Fixed Point Advisor 會提醒我們為字符型、整型、長字節和其他對特定處理器而言獨特的屬性指定正確的字長,以避免仿真或代碼生成時產生錯誤結果。


        準備數據類型和定標


        在初始設計中,工程師通常使用繼承數據類型傳遞,以加速原型設計并快速迭代幾個設計。當項目接近化時,他們會調整并指定每個數據類型并定標,以優化定點結果。


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


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

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

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

        執行初始數據類型和定標


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


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


        檢查模型對于產品級代碼部署的適宜性


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


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

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


        分析、改進以及優化定點定標


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

        圖2


        圖2:利用 Fixed-Point Tool 對容錯燃料系統模型進行自動定標。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛阳市| 新安县| 仲巴县| 曲沃县| 社会| 区。| 读书| 玉林市| 台南市| 原平市| 巴南区| 玉树县| 康平县| 沂南县| 临武县| 新化县| 册亨县| 溆浦县| 鄢陵县| 京山县| 南京市| 和林格尔县| 南部县| 新乡县| 台州市| 莎车县| 西峡县| 崇礼县| 喀什市| 醴陵市| 大连市| 通城县| 新营市| 渑池县| 莫力| 左云县| 慈溪市| 城口县| 康乐县| 新晃| 三河市|