• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Verilog HDL語言的FPGA浮點數(shù)加減法運算的實現(xiàn)

      2018-08-27 10:24:12謝文彬
      機電信息 2018年24期
      關鍵詞:規(guī)格化浮點數(shù)加減法

      謝文彬

      (淮安生物工程高等職業(yè)學校,江蘇淮安223200)

      0 引言

      浮點運算方式較定點運算有計數(shù)范圍寬、有效精度高的特點,是目前大多數(shù)計算機系統(tǒng)采用的表達形式,也是數(shù)控系統(tǒng)中刀具補償、插補計算常采用的運算方法。目前比較流行的方法是使用DSP數(shù)字信號處理芯片實現(xiàn)浮點運算。浮點表述結(jié)構(gòu)復雜,完全使用DSP軟件實現(xiàn)一定程度上會影響DSP的運算速度。

      本文主要研究利用Verilog HDL語言進行FPGA浮點運算加減法方法的實現(xiàn)。Verilog HDL是基于C語言的硬件描述語言,對數(shù)字邏輯電路建模有著獨特的優(yōu)勢。

      1 浮點數(shù)加減法運算的實現(xiàn)過程

      本文浮點數(shù)的運算介紹基于二進制單精度類型,由符號位、階碼位、尾碼位組成(以上由IEEE 754[1]標準定義)。在符合IEEE 754標準的浮點數(shù)加減運算過程中,減法運算也可以轉(zhuǎn)變成加法運算,只要處理好兩數(shù)的符號即可。規(guī)格化浮點數(shù)加法可以分為符號判斷、階碼比較、尾碼對階、求和或求差和規(guī)格化處理等步驟。其加減法運算步驟[2]如下:

      (1)符號判斷:判斷是加法運算還是減法運算。

      (2)階碼比較:求解兩個浮點數(shù)階碼的差。

      (3)尾碼對階:小階向右移動階差位,階碼增加階差位。

      (4)求和或求差:對階完畢浮點數(shù)的尾碼需要進行求和或求差。

      (5)規(guī)格化處理。

      使用FPGA實現(xiàn)浮點數(shù)加減法運算的模塊結(jié)構(gòu)如圖1所示。

      圖1 浮點數(shù)加減法基本算法模塊結(jié)構(gòu)

      在規(guī)格化模塊中要對結(jié)果進行前導1檢測、初次規(guī)格化、尾數(shù)舍入和最終規(guī)格化得到最后結(jié)果,尾碼應表示最多的有效數(shù)且用純小數(shù)給出,同時尾碼大于等于1/2小于1,即尾碼最高位為1,尾碼右移一位,階碼增一稱為“右規(guī)”,尾碼左移一位,階碼減一稱為“左規(guī)”,規(guī)格化可增加有效數(shù)的位數(shù),提高運算結(jié)果精度[3]。根據(jù)浮點數(shù)運算器邏輯可得到使用硬件描述語言設計運算模塊的端口定義如表1所示。

      表1 浮點運算模塊端口

      在輸入端口信號中,clk50為50MHz時鐘信號;rst_n為模塊復位信號,低電平有效;Y1為被加數(shù)或被減數(shù);Y2為加數(shù)或減數(shù)。

      在輸出端口信號中,S1為Y1的符號位;S2為Y2的符號位;E1為Y1的階碼位;E2為Y2的階碼位;F1為Y1的尾碼位;F2為Y2的尾碼位;Y為最終輸出結(jié)果信號;yichu_flat為階碼溢出標志信號;Y_E為Y的階碼信號;Y_F為Y的尾碼位;F_out為規(guī)格化時的尾碼位,其規(guī)格化后的低23位賦值給Y_F。

      根據(jù)S1、S2的值判斷兩數(shù)的加減運算,如果S1、S2的值為“00”或“11”兩數(shù)相加,否則兩數(shù)相減。在相減過程中,如果S1、S2的值為“01”,則Y1為被減數(shù),Y2為減數(shù),否則Y2為被減數(shù),Y1為減數(shù);js為加減法運算判斷信號,當js的值為“0”時表示兩浮點數(shù)進行加法運算,否則表示兩浮點數(shù)進行減法運算。其部分硬件描述語言如下:

      在浮點數(shù)加減法運算過程中,規(guī)格化處理過程比較重要,只有經(jīng)過了規(guī)格化,其最終結(jié)果才能符合IEEE 754標準。本文使用casex語句來完成規(guī)格化處理,主要部分硬件描述語言如下:

      2 仿真驗證

      利用硬件描述語言編寫,經(jīng)過編譯和綜合,可得浮點數(shù)運算模塊的封裝圖,在得到封裝圖的基礎上進行了仿真,驗證了設計的正確性。浮點數(shù)加減法模塊共消耗了1 162個LE(邏輯單元)、195個寄存器、97個用戶可用管腳、122個測試點。仿真圖如圖2所示,仿真圖中各信號含義參照表1。

      圖2 浮點數(shù)加減法模塊仿真圖

      在時鐘clk50和復位信號rst_n的作用下,當復位信號rst_n為低電平時,信號E、F_out、yichu_flat清零置數(shù);當復位信號rst_n為高電平時,在時鐘的上升沿,casex判斷F_out的結(jié)構(gòu),E、F_out信號根據(jù)casex判斷F_out的結(jié)構(gòu)的結(jié)果進行減法和左移運算;當casex語句判斷后的E[8]值為“1”時,表示有溢出,則溢出標志位yichu_flat置1。

      在仿真圖中,有4組數(shù)據(jù)運算,其中輸入數(shù)據(jù)均符合IEEE 754標準,由符號十進制數(shù)經(jīng)過單精度浮點數(shù)轉(zhuǎn)換專用軟件轉(zhuǎn)換為十六進制數(shù),結(jié)果如圖3所示。

      圖3 IEEE-754浮點數(shù)軟件轉(zhuǎn)換圖

      浮點數(shù)加減法數(shù)值計算表如表2所示,由表可以看出,本設計的仿真結(jié)果與實際結(jié)果有誤差,誤差計算公式為:誤差=尾碼差×2階碼,也可以使用專用軟件由十六進制數(shù)逆推到有符號十進制數(shù),然后算出誤差值。由誤差項值可以看出,其數(shù)值極小,不影響系統(tǒng)的計算精度,得出FPGA浮點運算加減法設計方法正確可行,精度高。

      表2 浮點數(shù)加減法數(shù)值計算表

      3 結(jié)語

      在如今數(shù)控系統(tǒng)需要高精度、高速度的時代背景下,基于FPGA芯片技術特點,使用FPGA實現(xiàn)浮點數(shù)運算已經(jīng)是大勢所趨,它正在為人們所廣泛接受。

      猜你喜歡
      規(guī)格化浮點數(shù)加減法
      四種Python均勻浮點數(shù)生成方法
      電腦報(2021年11期)2021-07-01 08:26:31
      怎樣巧算小數(shù)的加減法
      做好課改“加減法” 提高課改實效
      甘肅教育(2020年17期)2020-10-28 09:02:08
      加減法的由來
      “放管服”的加減法
      商周刊(2018年17期)2018-08-31 02:20:14
      在C語言中雙精度浮點數(shù)線性化相等比較的研究
      船電技術(2017年1期)2017-10-13 04:23:24
      試析水稻規(guī)格化育苗與機械插秧技術
      維模型的規(guī)格化表示與存儲方法研究
      軟件(2016年4期)2017-01-20 09:32:46
      引潮位展開的不同規(guī)格化形式及其轉(zhuǎn)換
      非精確浮點數(shù)乘法器設計
      乌拉特前旗| 洪江市| 嘉善县| 城步| 西城区| 鄂温| 孟连| 新平| 贵定县| 鄂伦春自治旗| 寿阳县| 蒲城县| 镇康县| 柳江县| 岳阳市| 石阡县| 叙永县| 安新县| 南漳县| 沂源县| 秦安县| 葫芦岛市| 澄迈县| 鄂州市| 大悟县| 林口县| 西昌市| 肃宁县| 江山市| 凌云县| 阿巴嘎旗| 曲靖市| 平乡县| 汾阳市| 顺平县| 永新县| 青神县| 临沂市| 连南| 肇州县| 酒泉市|