日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【HDL系列】除法器(3)——基2 SRT算法

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【HDL系列】除法器(3)——基2 SRT算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、除法表示

二、數字遞歸算法基礎公式

三、QDS(Quotient Digit Selection)函數

四、基2 SRT算法


一、除法表示

除法被定義如下:

其中,x是被除數,d是除數,q是商,rem是余數。

商的精度由ulp(unit of last position)來決定:

??? 如果ulp=1, 商q則是整數;

??? 如果ulp=r^(-n),n是商數個數,r是所有輸入操作數的基,此時商為小數。

二、數字遞歸算法基礎公式

在使用數字遞歸算法(Digit Recurrence Algorithms)進行除法操作時迭代n次,每次迭代中產生基r的商,其中商的最高位先產生。經過j+1次迭代后,商表示如下:

經過n次迭代后除法完成,產生了n個商數,商q表示為:

最終q的誤差需小于ulp,所以:

在第j+1次迭代中,每一步中產生的誤差為:

重新組合上式,兩式各乘以d和r的j+1次得:

以上左式定義一個新的中間變量w[j+1]如下:

W[j+1]為部分余數,其遞歸過程如下式所示:

上式是數字遞歸算法的基礎。

三、QDS(Quotient Digit Selection)函數

此處部分余數w[j+1]可以表示為:

因為w[j+1]=rw[j]-dq[j+1]; 表示在第j+1次迭代后得到的q[j+1]需使w[j+1]滿足以上條件;

W[j+1]迭代框圖

?

W[j+1]迭代框圖是根據輸入w[j],r和d聯合計算而來,初始的w[j]=x,即被除數。其中:

Arithmetic Shift Left表示左移余數或者部分余數;

Divisor Multiple Generation表示將得到的商值q[j+1]乘以d

Subtraction計算w[j+1]的結果,即w[j+1] = r*w[j]-d*q[j+1]

Quotient Digit Selection,簡稱QDS,即商數選擇,該模塊根據輸入的部分余數r*w[j]和除數d得到商值q[j+1]。

我們來回憶下二進制恢復余數法(r=2)和二進制不恢復余數法(r=2)的QDS函數:

二進制恢復余數法的QDS函數:

二進制非恢復余數法的QDS函數:

以上恢復余數法的商數據集為{0,1},非恢復余數法的商數據集為{-1,1}。

四、基2 SRT算法

SRT算法是以D.Sweeney,J.E.Robertson和T.D.Tocher三名科學家的姓氏首字母組合命名而來的算法。他們幾乎在同時間段各自獨立發明了一種非恢復二進制除法的方法。

SRT算法旨在加速非恢復二進制除法,在商數選擇集中引入了0,且將QDS函數修改如下:

基2 SRT除法的Robertson圖

基2 SRT將0引入到商集中,部分迭代則可只需要移位操作,減少了除法模塊的平均延時。但它與非恢復余數法的問題依舊是2w[j]與-d和+d的比較需要全精度才能得出q值。所以將除數d歸一化小數表示至區間[1/2, 1),引入新的分界點-1/2和1/2來替代-d和+d,下式可說明-d與+d的小數取值:

所以QDS將更新如下:

其Robertson圖如下:

基2 SRT除法的Robertson圖,d屬于區間[1/2, 1)

部分和w[j+1]被限制在[-1/2, 1/2)區間內,2w[j]被歸一化且其二進制補碼表示如下:

其中u0為符號位。因此,在{-1,0,1}三個可能的值中選取合適的商q值,QDS函數只需要將移位的部分和2w[j]的最高2/3比特與-1/2和1/2比較:

q的選擇有三種情況:

  • 當2w[j]>=1/2,則q值為1, 即最高兩比特為0.1;
  • 當2w[j]<-1/2,則q值為-1,即最高兩比特為1.0;
  • 其他情況,q值為0;
  • 這意味著QDS函數的實現只需要幾個簡單的與門和反相器即可,而不再需要將部分和與全精度的除數進行比較,極大節省了門電路面積,這也是相比于非恢復算法的改進之處。

    五、基2 SRT除法例子

    設被除數x=69,除數d=10,求商q和余數rem?

    我們知道:69/10 = 6 … 9

    q=6,rem=9

    基于以上介紹,我們來看下69/10的基2 SRT除法如下圖:

  • 初始時將x和d分別歸一化;
  • 左移w[j],j=0,1,2,3,通過QDS函數(簡單的高比特比較)得出qj和w[j+1];
  • 部分和校準;
  • q值數字集轉換為2進制表示以及校準;
  • 從圖中可以看出,商q=0110=6,余數rem=1001=9,與期望一致。

    基2 SRT Verilog設計較為簡單與以上過程基本類似,而對于速度、性能和面積來說卻還不夠。

    ?

    后期會有一些本期的補充說明。

    謝謝您的閱讀!

    參考Arichitectures for Floating-Point Division

    更新不易,如果對您有幫助,記得點贊關注哦。歡迎批評指正,謝謝鼓勵!

    一起“紙上談芯”,共同學習:

    總結

    以上是生活随笔為你收集整理的【HDL系列】除法器(3)——基2 SRT算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。