[發明專利]開方運算的硬件實現方法以及開方運算器有效
| 申請號: | 201110215375.6 | 申請日: | 2011-07-29 |
| 公開(公告)號: | CN102253924A | 公開(公告)日: | 2011-11-23 |
| 發明(設計)人: | 楊博;方超;楊林;劉皓 | 申請(專利權)人: | 電子科技大學 |
| 主分類號: | G06F17/15 | 分類號: | G06F17/15 |
| 代理公司: | 電子科技大學專利中心 51203 | 代理人: | 李明光 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 開方 運算 硬件 實現 方法 以及 運算器 | ||
技術領域
本發明屬于硬件平臺的運算和數據處理技術。
背景技術
加減乘除以及開方運算是科學計算和工程應用中最基本的運算,他們廣泛應用于多次方程求解、數學建模、誤差計算、數據加密、數值分析、概率統計、圖像處理以及信號處理等許多領域。關于整數及浮點數的運算已經在VLSI(超大規模集成電路)標準中有規定。一些計算已經在FPGA(現場可編程門陣列)中實現了。
開方運算雖然不如加減乘除使用頻繁,然而它計算相對復雜,處理速度明顯低于其他運算,因此用FPGA實現快速的當n大于等于3的n次方根運算是比較困難的。目前,求解輸入數據的平方根算法(開2次方根運算)已經被提出了多種,比如牛頓迭代法、SRT-冗余算法、非冗余算法、CORDIC算法等。這些算法已經比較成熟,并且成功地運用到硬件電路設計中,實現方便快速。但是如果要計算一個輸入數據的n次方根(n大于等于3),運用上述算法將變得非常復雜,硬件實現困難且相當麻煩。
當然,目前也有一些其他方法用于計算一個數據的n次方根,比如通過軟件的方法來進行計算,但是這種高級語言的計算需要取指、譯碼等然后進行許多次乘法和加法運算,執行一次n次方根計算的時間很長,達不到硬件計算電路的高速率標準。另外一種常用的,就是查表法。具體方法就是將被開n次方的數據作為地址,其n次方根的結果作為對應地址的內容存放到ROM中。這樣,當輸入一個被開n次方根的數據時,以此數據作為地址對ROM進行查詢,得到的結果就是它的n次方根值。采用查表法需要事先獲得n次方根表并將其存放到ROM中,這種辦法雖然不需要計算,但也存在以下缺點:(1)存儲容量巨大。比如要實現一個32bit輸入數據的n次方根運算,那就需要2的32次方即4G個地址空間的ROM。(2)處理延時較大。用于查詢的時延較大,直接導致數字系統的時鐘頻率降低。(3)對于大容量的查表,其維護困難。主要是因為當需要改變n次方根舍入方法時,必須更改大容量ROM的內容,所需要的工作量巨大。(4)重用性不高。當需要n次方根結果精確到小數時,ROM的容量和查找表內容都相應的要做出修改。
發明內容
本發明所要解決的技術問題是,提供一種新的,不用占用大量存儲空間的,能夠在硬件上實現開方運算的方法以及實現該方法的開方運算器。
開方運算的硬件實現方法,包括以下步驟:
步驟1、輸入數據寄存器存儲待進行開n次方運算的數據,再進入步驟2,所述n為大于等于3的正整數;
步驟2、處理模塊確定中間值寄存器變量i的初始值,所述變量i為中間值寄存器的第i比特位,初始化中間值寄存器的第i比特位為1,其余比特位為0,再進入步驟3;
步驟3、處理模塊根據n的大小來控制乘法運算模塊對中間值寄存器中的值進行n次方運算,乘法運算模塊將結果輸出至中間結果寄存器,再進入步驟4;
步驟4、比較器比較輸入數據寄存器中的值與中間結果寄存器中的值的大小,并將比較結果反饋至處理模塊,再進入步驟5;
步驟5、處理模塊根據比較結果設置中間值寄存器:當輸入數據寄存器中的值大于中間結果寄存器中的值時,更新i為i-1,設置中間結果寄存器的第i比特位為1,再進入步驟7;當輸入數據寄存器中的值小于中間結果寄存器中的值時,重新設置第i比特位為0,再更新i為i-1,設置第i比特位為1,再進入步驟7;當輸入數據寄存器中的值等于中間結果寄存器中的值時,進入步驟8;
步驟7、處理模塊判斷i是否為0,如是,則進入步驟8,如否,則返回步驟3;
步驟8、處理模塊控制中間值寄存器將當前存儲的值輸入至結果寄存器中,本次開方運算結束。
具體的,步驟2中,處理模塊確定中間值寄存器變量i的初始值,應保證初始化后的中間值寄存器的值在進行n次方運算后大于輸入數據寄存器的值。
本發明采用逐位逼近法,先開辟一個全0的寄存器作為輸入數據的n次方根值的中間值寄存器,再確定一個寄存器變量i的初始值,并置中間值寄存器的第i位為1,確保初始化后的中間值寄存器的值的n次方大于原始輸入數據。之后逐漸設置中間值寄存器的低位,并將設置后的值進行n次方運算,將n次方運算結果與輸入數據進行比較,從而調整中間值寄存器的設置,直到i減為0或者n次方運算結果等于輸入數據,開方運算結束,將此時中間值寄存器中的值作為開方運算結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于電子科技大學,未經電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110215375.6/2.html,轉載請聲明來源鉆瓜專利網。





