<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 新型數(shù)據(jù)格式轉(zhuǎn)換的FPGA實(shí)現(xiàn)

          新型數(shù)據(jù)格式轉(zhuǎn)換的FPGA實(shí)現(xiàn)

          作者: 時(shí)間:2011-11-19 來(lái)源:網(wǎng)絡(luò) 收藏
          2.2 關(guān)鍵代碼解析

          本文引用地址:http://www.ex-cimer.com/article/150044.htm

            在的硬件描述語(yǔ)言中將整數(shù)的十進(jìn)制為二進(jìn)制比較簡(jiǎn)單,可以調(diào)用ISE軟件自帶的程序包中的函數(shù)來(lái),但如何將小數(shù)部分為二進(jìn)制是能否順利完成從實(shí)數(shù)到單精度浮點(diǎn)數(shù)轉(zhuǎn)換的關(guān)鍵??紤]到要對(duì)小數(shù)部分進(jìn)行舍入運(yùn)算,所以將小數(shù)部分轉(zhuǎn)換28位的二進(jìn)制。要用28位二進(jìn)制表示小數(shù)部分,需利用VHDL語(yǔ)言中變量(variable)被賦值時(shí)立即生效的特性,結(jié)合FOR循環(huán)來(lái)。部分關(guān)鍵代碼如下:

            

            代碼中frac_part是小數(shù)部分的十進(jìn)制表示(因?yàn)閕nteger類型只能表示整數(shù),所以將小數(shù)部分?jǐn)U大了10 000倍,但不影響結(jié)果的正確性),frac_28是小數(shù)部分的二進(jìn)制表示。信號(hào)frac_28(27)的權(quán)值是2-1,依次以1/2倍率遞減,frac_28(0)的權(quán)值是2-28。此進(jìn)程由frac_part發(fā)生變化來(lái)啟動(dòng),完成轉(zhuǎn)換的時(shí)間是瞬時(shí),也可以認(rèn)為是一個(gè)時(shí)鐘周期。

            3 仿真結(jié)果及分析

            首先用ModelSim進(jìn)行功能仿真,其結(jié)果如圖3所示。輸入的實(shí)數(shù)為125.763,輸出結(jié)果經(jīng)Matlab逆向求值同輸入值進(jìn)行比較,驗(yàn)證了轉(zhuǎn)換結(jié)果的正確性。一個(gè)數(shù)的正確轉(zhuǎn)換并不能說(shuō)明問(wèn)題,下面將驗(yàn)證此轉(zhuǎn)換方法的可行性。

            

            選取具有代表性的實(shí)數(shù)對(duì)轉(zhuǎn)換方法的性能進(jìn)行驗(yàn)證。主要驗(yàn)證兩個(gè)方面:

            (1)是否在預(yù)定域內(nèi)具有全覆蓋性;

            (2)是否能對(duì)此域中的最小值進(jìn)行有效表示。

            結(jié)果如表1所示。

            

            根據(jù)轉(zhuǎn)換原理,最小值所轉(zhuǎn)換的誤差最大,但最大值的轉(zhuǎn)換誤差不一定最小(因?yàn)榇嬖谏崛?。這個(gè)最大的轉(zhuǎn)換誤差在10-5量級(jí),當(dāng)待轉(zhuǎn)換實(shí)數(shù)的絕對(duì)值大于整數(shù)1時(shí),轉(zhuǎn)換的誤差將小于10-5量級(jí),可達(dá)10-9量級(jí)。這樣的轉(zhuǎn)換誤差可以滿足大多數(shù)浮點(diǎn)運(yùn)算環(huán)境下的精度需要。實(shí)驗(yàn)驗(yàn)證了此轉(zhuǎn)換方法的有效性和“全覆蓋性”。

            在完成仿真測(cè)試后,將程序進(jìn)行綜合,布局布線,最后生成位流文件下載到芯片中進(jìn)行驗(yàn)證。在實(shí)際的芯片中將轉(zhuǎn)換結(jié)果和已仿真得到的結(jié)果進(jìn)行比較,并輸出指示信號(hào)。從實(shí)際的電路輸出結(jié)果看,和仿真結(jié)果完全一致,證明了此方法在實(shí)際芯片中可行性。因?yàn)椴捎玫氖橇魉€操作,所以仿真所用的周期數(shù)和實(shí)際周期數(shù)是一致的。該實(shí)驗(yàn)在50 MHz的時(shí)鐘下用時(shí)6個(gè)周期(即0.12μs)完成轉(zhuǎn)換操作。而在最常用的串口傳輸波特率9 600 b/s下,傳送1個(gè)碼元的時(shí)間為10-1ms量級(jí)。從而可以得出:完成從ASCII碼所表示的實(shí)數(shù)(-9 999.999 9~+9 999.999 9)到單精度浮點(diǎn)的轉(zhuǎn)換所用的時(shí)間將在10-1μs量級(jí)以下,具有較高的實(shí)時(shí)性。

            4 結(jié)語(yǔ)

            本文的向單精度浮點(diǎn)的轉(zhuǎn)換占用1 161個(gè)slice資源,在發(fā)展到今天,F(xiàn)PGA的容量和資源都有了很大提高的情況下,這樣的資源占用量在大多數(shù)應(yīng)用中是可以承受的。本文的設(shè)計(jì)可以很容易地根據(jù)實(shí)際實(shí)數(shù)的范圍進(jìn)行調(diào)整,并且可以推廣到其他浮點(diǎn),可有效地為浮點(diǎn)IP核提供快速且具有高精度的源。


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

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();