亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Cycle True準則的算法仿真和RTL代碼生成方法研究

        2012-07-04 12:23:08
        科技視界 2012年6期
        關鍵詞:代碼生成數據類型小數

        宋 燦

        (安徽理工大學 安徽 淮南 232001)

        0 引言

        與純粹的算法仿真不同,實現性的仿真不僅需要確定算法的正確性和性能,還需要生成實時語言硬件代碼RTL。通常這種實現過程并不是直接通過手工編寫的方式來實現算法的硬件代碼,而是建立在部分算法仿真的基礎之上。首先,在Matlab中搭建Simulink仿真模塊。然后,進行數據定點化,確認無誤之后可以通過HDL coder來生成硬件代碼。然而生成的這些代碼未必直接能在硬件平臺上運行,那怕只是仿真編譯都未必可以通過,這時候我們就需要后續(xù)的一系列手段來保證硬件代碼生成后可以在硬件平臺上順利運行。通常我們以一個5步流水的方式來生成最后可在硬件上運行的代碼。整個過程的流程圖如圖1所示。

        圖1 基于Cycle True準則的RTL代碼實現的流程圖

        1 仿真環(huán)境介紹

        為了更好地介紹硬件代碼的實現過程,首先介紹一下在這個過程中需要使用到的仿真環(huán)境。整個流程中我們使用到的仿真環(huán)境主要有MATLAB是矩陣實驗室(Matrix Laboratory)、Quartus II:由Altera公司針對自家生產的硬件所設計的綜合性PLD開發(fā)軟件、Mentor公司的ModelSim:一款HDL語言仿真軟件,業(yè)界唯一的單內核支持VHDL和Verilog混合仿真的仿真器。

        2 RTL代碼實現流程

        2.1 Matlab的理論驗證和性能確定

        這是所有理論設計的第一步驗證,通過Matlab-simulink搭建系統(tǒng)模型,并在仿真運行后觀察系統(tǒng)關鍵位置的數據是否符合理論標準,以及確定整個算法的性能。之后的步驟不再影響或考慮性能因素,只涉及正確性問題。其中需要說明的是,理論驗證一開始需要先搭建一個行為級的算法實現,每個模塊直接由Simulink提供,這一步基本上就已經確定了算法本身的性能。但是這一步所實現的算法,僅僅是性能驗證而已無法用來生成硬件代碼。這一步得到的結果我們稱之為x版或行為級模塊。接下來需要通過最基本的邏輯電路來搭建一個可實現級的算法模塊。這一步得到的結果我們稱之為q版。以OFDM解調使用到的FFT模塊為例,圖2給出了FFT算法的Simulink實現以及仿真方法。

        接下來,我們將x版和q版中同等位置的數據作差,如果得到的差為0則說明得到的結果相同,若結果不同結果應為±1,則說明出現了錯誤。對這個結果取絕對之后再循環(huán)累加來統(tǒng)計出先錯誤的次數。通常情況下我們要求累加結果一直為0。之后的每一步算法或代碼實現后都要類似的與原始的x版進行比較。

        圖2 帶有512點FFT的OFDM仿真

        2.2 定點化仿真

        定點化:在實際硬件中信號僅可傳遞2進制數,因此需要一個將各輸入輸出節(jié)點及線路上的數據類型轉化為2進制定點數表示。除此之外既然是定點數據,那么的長度也是該步驟需要考慮的問題。在對數據精度某個特定的要求情形下確定各個節(jié)點的長度,防止某些節(jié)點出現數據溢出,或必要時截斷某些數據,這些步驟決定了定點化是一個工作量比較大的仿真環(huán)節(jié)。以一個無符號二進制整形數據為例,1位2進制數類型設為Boolean。十進制整數先換算成二進制 (比如144先2進制表示為10010000)從而確定其寬度為8位,因此設定類型uint8即無符號8位2進制數。值得注意的是某些電路節(jié)點的數據寬度是可變的,例如在一些反饋回路中 輸出和輸入的位寬不同 (比如循環(huán)累加器)并且輸出信號可能再次成為輸入信號,按照原有既定的輸入寬度在累加到一定次數后即可能溢出。因此輸入的寬度要和累加器輸出最大寬度保持一致。對于有符號數或小數的則要確定小數,比如對于一個整數部分為3位小數部分為11位的一個有符號小數,則需要將數據類型選擇為sfix(14,11),其中14表示總共的二進制數的位數為14,其中小數占據11位。因此我們需要將輸出數據類型Output data type(如果可能的話還包括輸入數據類型Input data type)由繼承內部規(guī)則Inherit via internal rule改為進過計算后得出的類型。定點化所生成的模塊版本成為e版。仿真運行正確后,可以使用Matlab內建工具生成HDL代碼,為后面的HIL仿真和最后的硬件仿真做準備工作。在我們實際應用中生成的是Verilog HDL代碼。圖3給出了HDL代碼的生成工具。

        圖3 HDL代碼生成界面

        2.3 Simulink與Modelsim的協(xié)同仿真

        協(xié)同仿真Co-simulation是一種用到了2個或多個仿真環(huán)境的仿真方法??梢哉J為是軟件仿真向硬件仿真的過渡。這里需要Simulink和Modelsim協(xié)同完成。Modelsim和Simulink分別調用了各自的庫文件。其中Modelsim的庫文件很多來自于Altera,因此和硬件庫相關。而Simulink的庫幾乎都來自于Matlab,更貼近我們最原始的算法版本。因此可以認為這一步是由到HDL代碼生成到硬件回路仿真(HIL)的過渡。驗證生成的代碼是否可綜合。實際操作中可以用新建的cosimulation模塊替換原有的e版模塊。

        2.4 HIL

        這一步稱為硬件回路仿真:Hardware in the loop(HIL),是一種硬件級的仿真。我們采用的是DSP builder與QuartusII聯調方式,因此也是一種協(xié)同仿真。DSP builder是Altera提供的一個基于Simulink的仿真組件。HIL模塊示意圖如圖4所示。

        圖4 HIL模塊

        HIL被證明是一種有效的解決方法。該技術能確保在開發(fā)周期早期就完成嵌入式軟件的測試。到系統(tǒng)整合階段開始時,嵌入式軟件測試就要比傳統(tǒng)方法做得更徹底更全面。這樣可以及早地發(fā)現問題,因此降低了解決問題的成本。HIL仍然是一種協(xié)同仿真,只是這次不同的是用到了FPGA硬件。驗證編譯器將HDL代碼綜合成硬件代碼并驗證是否正確。需要注意的是如果這一步可能會出現一些問題,而不同的問題反應了前面不同的地方存在著問題。硬件代碼在編譯綜合時消耗了過長時間或無法綜合說明原有代碼生成工具可能存在問題,因此需要進行檢查代碼并手工修改。

        2.5 硬件仿真

        在以上各步驟均驗證正確或符合性能指標之后即可進行硬件系統(tǒng)搭建。值得注意的是上一個步驟使用到的硬件并非完整的系統(tǒng),通常只是用到了一個FPGA處理器,并不包含其他元器件。而這一步則是要對制作好的硬件pcb板在算法或功能上進行全面調試。因此除了要測試算法以外,還要對外設驅動,控制程序等做全面測試。

        3 總結

        在實際的工程應用中由于工作量大,細節(jié)繁瑣,那么仿真過程中如果出現問題在普通的機制下往往會出現有錯無從查找原因的尷尬局面?;贑ycle True準則的仿真和RTL代碼生成的方法很好的保證了每個環(huán)節(jié)的正確性或可糾錯性。一旦在當前步驟發(fā)現錯誤,可以很快的根據Cycle True準則在相關的環(huán)節(jié)中尋找錯誤。因此極大的提高了工作效率和可靠性。

        [1]應啟衍,鄭君里.Matlab綜合實驗[M].北京:高等教育出版社,2008.

        [2]岡薩雷斯.數字圖像處理Matlab版[M].電子工業(yè)出版社,2005,9.

        [3]Alan V.Oppenheim&John R.Buck.Discrete-Time Signal Processing[M].西安交通大學出版社,2001,9.

        [4]桑吉特·米特拉.數字信號處理:基于計算機的方法[M].電子工業(yè)出版社,2011,9.

        猜你喜歡
        代碼生成數據類型小數
        小數加減“四不忘”
        詳談Java中的基本數據類型與引用數據類型
        我國古代的小數
        小數的認識
        小數的認識
        如何理解數據結構中的抽象數據類型
        數碼世界(2020年5期)2020-06-23 00:14:36
        Lustre語言可信代碼生成器研究進展
        代碼生成技術在軟件開發(fā)中的應用
        電子世界(2016年15期)2016-08-29 02:14:28
        基于XML的代碼自動生成工具
        電子科技(2015年2期)2015-12-20 01:09:20
        基于關系數據模型代碼生成器的設計與實現
        三级网站亚洲三级一区| 91尤物视频在线观看| 麻豆密入视频在线观看| 女同在线视频一区二区| 亚洲狠狠婷婷综合久久久久| 国产亚洲精品bt天堂精选| 亚洲av日韩aⅴ无码电影| 亚洲第一女人天堂av| 久久日日躁夜夜躁狠狠躁| 暖暖视频在线观看免费| 久久av高潮av喷水av无码| 免费人成网在线观看品观网| 337p日本欧洲亚洲大胆色噜噜| 中国内射xxxx6981少妇| 天天草夜夜草| av国产免费在线播放| 国产亚洲精品美女久久久m| 精品国产18久久久久久| 无码91 亚洲| 精品国产一区二区三区av免费| 天天狠天天添日日拍| 国产人成精品综合欧美成人| 亚洲av色香蕉一区二区三区蜜桃 | 天天躁夜夜躁天干天干2020| 老熟妇仑乱一区二区视頻| 亚洲一区二区三区国产精品视频 | 精品88久久久久88久久久| 精品国产乱来一区二区三区| 亚洲国产高清精品在线| 一本一道久久a久久精品综合| 免费黄色福利| 少妇被粗大猛进进出出男女片| 人妻饥渴偷公乱中文字幕| 久久精品波多野结衣中文字幕 | 国产精品亚洲а∨无码播放不卡| 91热这里只有精品| 亚洲中文字幕日本日韩| 亚洲狠狠婷婷综合久久久久 | 亚洲人妻精品一区二区三区| 中文字幕亚洲欧美在线不卡| 又爽又黄禁片视频1000免费|