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

        ?

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

        2012-07-04 12:23:08
        科技視界 2012年6期
        關(guān)鍵詞:代碼生成數(shù)據(jù)類型小數(shù)

        宋 燦

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

        0 引言

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

        圖1 基于Cycle True準(zhǔn)則的RTL代碼實(shí)現(xiàn)的流程圖

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

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

        2 RTL代碼實(shí)現(xiàn)流程

        2.1 Matlab的理論驗(yàn)證和性能確定

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

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

        圖2 帶有512點(diǎn)FFT的OFDM仿真

        2.2 定點(diǎn)化仿真

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

        圖3 HDL代碼生成界面

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

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

        2.4 HIL

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

        圖4 HIL模塊

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

        2.5 硬件仿真

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

        3 總結(jié)

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

        [1]應(yīng)啟衍,鄭君里.Matlab綜合實(shí)驗(yàn)[M].北京:高等教育出版社,2008.

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

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

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

        猜你喜歡
        代碼生成數(shù)據(jù)類型小數(shù)
        小數(shù)加減“四不忘”
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        我國(guó)古代的小數(shù)
        小數(shù)的認(rèn)識(shí)
        小數(shù)的認(rèn)識(shí)
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        Lustre語言可信代碼生成器研究進(jìn)展
        代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
        電子世界(2016年15期)2016-08-29 02:14:28
        基于XML的代碼自動(dòng)生成工具
        電子科技(2015年2期)2015-12-20 01:09:20
        基于關(guān)系數(shù)據(jù)模型代碼生成器的設(shè)計(jì)與實(shí)現(xiàn)
        亚洲熟女乱综合一区二区| 午夜一区二区三区福利视频| 久久精品国产亚洲av蜜点| 7m精品福利视频导航| 国产欧美日韩在线观看 | 国产激情一区二区三区在线| 熟妇激情内射com| 欧美日韩性视频| 91麻豆精品激情在线观最新| 蜜桃视频在线观看免费亚洲| 在线视频观看免费视频18| 亚洲免费观看网站| 天堂av在线播放观看| 精品激情成人影院在线播放| 欧美精品videossex少妇| 亚洲熟妇网| 最全精品自拍视频在线| 亚洲av成人无码久久精品老人| 3d动漫精品一区二区三区| 久久久久一| 国产一级内射一片视频免费 | 日本人妻高清免费v片| 狠狠色丁香婷婷综合潮喷| 97久久天天综合色天天综合色hd| 91精品国产91久久综合桃花| 国产精品视频白浆免费视频| 亚洲国产精品一区二区www| 日本中文字幕在线播放第1页| 一本大道综合久久丝袜精品| 国产精品会所一区二区三区| 精品日韩欧美一区二区在线播放| 日韩无码电影| 日韩有码在线一区二区三区合集| 久久www免费人成精品| 欧美伊人网| 羞涩色进入亚洲一区二区av| 风韵少妇性饥渴推油按摩视频| 99re热这里只有精品最新| 国产精品国产三级国产三不| 国产偷国产偷亚洲综合av| 中国国语毛片免费观看视频|