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

        ?

        一種基于System Generator的CORDIC算法實(shí)現(xiàn)

        2020-06-23 09:36:38胡天翔陳科趙志強(qiáng)
        科技創(chuàng)新與應(yīng)用 2020年19期
        關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列計(jì)算精度

        胡天翔 陳科 趙志強(qiáng)

        摘 ?要:在現(xiàn)場(chǎng)可編程門陣列(FPGA)芯片的應(yīng)用中,選擇坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算(CORDIC)算法來實(shí)現(xiàn)正余弦函數(shù)的實(shí)時(shí)計(jì)算有著廣泛的應(yīng)用。同時(shí)在信號(hào)處理領(lǐng)域上,對(duì)正余弦函數(shù)的計(jì)算有著高精度的需求。據(jù)此采用Simulink平臺(tái)的Xilinx公司開發(fā)工具System Genenrator(SysGen)設(shè)計(jì)了基于CORDIC算法實(shí)現(xiàn)正余弦函數(shù)計(jì)算的FPGA模型,將角度計(jì)算范圍擴(kuò)展到全實(shí)數(shù)領(lǐng)域,并在理論上推導(dǎo)出該設(shè)計(jì)方案計(jì)算結(jié)果的誤差上限。仿真結(jié)果顯示,該設(shè)計(jì)方案的誤差精度與理論推導(dǎo)保持一致。而且,相比SysGen的系統(tǒng)自帶模塊,該設(shè)計(jì)可以避免重復(fù)嘗試,更好地控制計(jì)算精度。

        關(guān)鍵詞:坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī);現(xiàn)場(chǎng)可編程門陣列;正余弦函數(shù);計(jì)算精度;System Generator

        中圖分類號(hào):TN911.72 ? ? ?文獻(xiàn)標(biāo)志碼:A ? ? ? ? 文章編號(hào):2095-2945(2020)19-0023-06

        Abstract: In the application of field programmable gate array (FPGA) chip, choosing the Coordinate Rotation Digital Computer (CORDIC) algorithm to realize the real-time calculation of sine and cosine functions has a wide range of applications. At the same time, in the field of signal processing, there is a demand for high precision in the calculation of sine and cosine functions. Based on this, the FPGA model of sine and cosine function calculation based on CORDIC algorithm is designed by using System Genenrator (SysGen), a development tool of Xilinx company on Simulink platform, which extends the range of angle calculation to the field of all real numbers, and deduces the upper limit of error of the calculation result of the design scheme in theory. The simulation results show that the error accuracy of the design scheme is consistent with the theoretical derivation. Moreover, compared with the system with its own module of SysGen, this design can avoid repeated attempts and better control the calculation accuracy.

        Keywords: coordinate rotation digital computer; field programmable gate array; sine and cosine functions; calculation accuracy; System Generator

        引言

        在AI、自動(dòng)駕駛及物聯(lián)網(wǎng)等信息技術(shù)蓬勃發(fā)展的今天,數(shù)據(jù)處理的高精度實(shí)時(shí)性需求越發(fā)被人們所重視。在現(xiàn)場(chǎng)可編程門陣列(FPGA)出現(xiàn)伊始,業(yè)界就有一種觀點(diǎn)認(rèn)為FPGA可以被用來加速計(jì)算(computing)的過程?,F(xiàn)今FPGA更是已經(jīng)成為數(shù)字信號(hào)處理系統(tǒng)的核心器件,其高速并行能力使得它成為高性能數(shù)字信號(hào)處理的理想平臺(tái)[1]。

        傳統(tǒng)的FPGA設(shè)計(jì)流程,需要從算法設(shè)計(jì)階段的高層次計(jì)算機(jī)語言(如C++)轉(zhuǎn)換到硬件實(shí)現(xiàn)階段的底層HDL語言(如Verilog),這個(gè)過程的時(shí)間成本很高,而且易產(chǎn)生一些錯(cuò)誤[2]。MATLAB中的Simulink給復(fù)雜的DSP算法的硬件化提供了一個(gè)很便利的開發(fā)平臺(tái),在該平臺(tái)上,利用Xilinx公司的開發(fā)工具System Generator(SysGen)不僅可以快速準(zhǔn)確的實(shí)現(xiàn)硬件的建模與仿真,而且可以將抽象的模塊化電路圖直接轉(zhuǎn)化為硬件描述語言,并生成測(cè)試文件,可以有效縮短開發(fā)周期[3]。

        傳統(tǒng)的CORDIC(Coordinate Rotation Digital Computer)算法在圓周坐標(biāo)系統(tǒng)下的的收斂范圍在[-99.82°,99.82°],并沒有覆蓋到任意角度[4]。且CORDIC算法具有迭代性,迭代次數(shù)和定點(diǎn)數(shù)運(yùn)算中數(shù)據(jù)位寬的選擇都直接關(guān)聯(lián)到計(jì)算結(jié)果的精度。增加迭代次數(shù)和數(shù)據(jù)位寬都會(huì)帶來硬件資源占用的影響,同時(shí)反復(fù)進(jìn)行迭代也會(huì)使得運(yùn)算速度變慢。這樣在滿足工程上精度需求的前提下,合適地選擇迭代次數(shù)和數(shù)據(jù)位寬可以在節(jié)省硬件資源成本和響應(yīng)速度上得到很好的兼顧。

        針對(duì)上述問題,為避免設(shè)計(jì)時(shí)的不斷重復(fù)嘗試。本文在Simulink平臺(tái)上針對(duì)圓周系統(tǒng)下CORDIC算法設(shè)計(jì)了正弦余弦函數(shù)的計(jì)算模塊,將可計(jì)算的范圍擴(kuò)展到任意角度,并在理論上給出了該設(shè)計(jì)的誤差上限。根據(jù)本文給出的誤差上限分析,適當(dāng)選取迭代次數(shù)和數(shù)據(jù)路徑中的小數(shù)位數(shù),可以同時(shí)兼顧計(jì)算速度和硬件消耗,更高效地實(shí)現(xiàn)定點(diǎn)數(shù)的正余弦函數(shù)計(jì)算。

        1 CORDIC算法基本原理

        CORDIC算法由J.Voider等人于1959年在航空控制系統(tǒng)的設(shè)計(jì)中提出來[4]。這種算法應(yīng)用于硬件平臺(tái)上,只要執(zhí)行移位和加法運(yùn)算,就能實(shí)現(xiàn)一些復(fù)雜的超越函數(shù)(如三角函數(shù))。該算法在數(shù)字信號(hào)處理領(lǐng)域得到了廣泛的應(yīng)用。其算法原理如下[5]。

        在CORDIC算法圓周坐標(biāo)系旋轉(zhuǎn)中,給定的初始向量{x(0),y(0)},起始角度z(0)。第i次迭代旋轉(zhuǎn)如圖1所示。

        3 基于System Generator的CORDIC正余弦計(jì)算模塊設(shè)計(jì)

        FPGA廠商Xilinx公司在Simulink平臺(tái)上提供了System Generator開發(fā)工具,用戶可以基于此工具高效建模,在FPGA上實(shí)現(xiàn)DSP算法。還可以自動(dòng)生成HDL代碼和測(cè)試文件,將模型直接轉(zhuǎn)化為ISE工程,大大提高了設(shè)計(jì)效率[7],是數(shù)字信號(hào)處理系統(tǒng)設(shè)計(jì)與Xilinx公司FPGA實(shí)現(xiàn)的“橋梁”。而且在SysGen環(huán)境下,采用基于模型的設(shè)計(jì)方法可以方便地實(shí)現(xiàn)和驗(yàn)證定點(diǎn)算法,發(fā)現(xiàn)問題后也容易進(jìn)行修改[8]。

        3.1 模塊設(shè)計(jì)方案

        本次模塊針對(duì)正弦和余弦計(jì)算,采用的是CORDIC算法圓周坐標(biāo)系下的旋轉(zhuǎn)模式。設(shè)置初始向量為?淄(0)=(1/Kn,0)',同時(shí)z(0)為我們要求解的目標(biāo)角度。經(jīng)過n次迭代后迭代累計(jì)角度z(n)趨近于0,也就意味著向量旋轉(zhuǎn)趨近于目標(biāo)角度。此時(shí)的向量模長增益趨近于1,向量的x坐標(biāo)趨近于cosz(0),y坐標(biāo)趨近于sinz(0),據(jù)此可計(jì)算z(0)的正弦值和余弦值。

        由于傳統(tǒng)CORDIC算法的覆蓋范圍有限,為了將計(jì)算角度擴(kuò)展到[-∞,+∞],我們需要對(duì)初始計(jì)算角度進(jìn)行旋轉(zhuǎn)。第一、四象限角度位于CORDIC收斂范圍之內(nèi),將第二、三象限角旋轉(zhuǎn)至第一、四象限中與其正弦值相同的角度。這樣就將角度映射至CORDIC的收斂范圍之內(nèi),此時(shí)余弦值為正,將其賦值為負(fù)即為原角度的余弦值。模塊整體結(jié)構(gòu)如圖2所示。

        計(jì)算角度的映射和余弦符號(hào)修正兩個(gè)模塊采用SysGen中的MCode模塊來實(shí)現(xiàn)。該模塊使用M語言來描述Verilog要表述的邏輯[9],我們可以將邏輯控制按照MCode要求的語法寫入.m文件,進(jìn)而裝載到MCode模塊中。這樣我們就將.m文件轉(zhuǎn)化為SysGen的一個(gè)組件,可以無縫結(jié)合到整體模型的構(gòu)建中。

        對(duì)輸入的任意角度(度),需要將其轉(zhuǎn)到0~360°范圍內(nèi)的角度,采用求余的方式達(dá)成。進(jìn)而加入MCode完成角度映射功能,將角度映射到[-90°,+90°]。角度映射模塊的MCode嵌入代碼如下所示:

        function z = quadrant_trans(x)

        if 0 <= x && x < 90

        z = x;

        elseif 90 <= x && x < 270

        z = 180 - x;

        else

        z = x - 360;

        end

        如果計(jì)算角度屬于第二、三象限,余弦符號(hào)修正模塊產(chǎn)生邏輯值1,否則邏輯值為0,將邏輯值輸入到選擇器中。如果為第二、三象限角,選擇器輸出迭代模塊產(chǎn)生x值的非。余弦符號(hào)修正模塊的MCode嵌入代碼如下所示:

        function z = cos_modify(x)

        if 90 <= x && x < 270

        z = xfix({xlBoolean}, 1);

        else

        z = xfix({xlBoolean}, 0);

        end

        系統(tǒng)整體模型如圖4所示,如前所述,輸入常量x為1/K(30),K(30)為偽旋轉(zhuǎn)30次迭代后所產(chǎn)生的增量倍數(shù),輸入常量y為0。Mod_function為取余運(yùn)算模塊,將全范圍的角度轉(zhuǎn)到[0°,+360°]范圍內(nèi)。經(jīng)30次迭代運(yùn)算后,輸出y為正弦值,輸出x經(jīng)多路選擇器輸出后為余弦值。

        3.2 模塊整體誤差分析

        4 仿真結(jié)果與分析

        在[-1000°,1000°]內(nèi)隨機(jī)生成20個(gè)角度值帶入設(shè)計(jì)的模塊中做正弦值計(jì)算。將所計(jì)算的結(jié)果與MATLAB代碼計(jì)算的結(jié)果做差求得誤差集合。以橫坐標(biāo)為角度(以度為單位),縱坐標(biāo)為誤差值作圖,正弦計(jì)算誤差曲線如圖6所示,余弦計(jì)算誤差曲線如圖7所示。

        從以上兩圖可以看到,隨機(jī)生成的角度經(jīng)設(shè)計(jì)模塊運(yùn)算后的的正余弦值計(jì)算結(jié)果誤差均未超過4.1665×10-8,與我們理論分析的結(jié)果是一致的。

        將System Generator自帶模塊,設(shè)置同樣的迭代次數(shù)和位數(shù),對(duì)20個(gè)隨機(jī)生成的角度進(jìn)行求解,所得結(jié)果與MATLAB計(jì)算結(jié)果的誤差曲線圖如圖8所示。本文所設(shè)計(jì)的正余弦函數(shù)計(jì)算模塊的精度要優(yōu)于系統(tǒng)自帶模塊。

        猜你喜歡
        現(xiàn)場(chǎng)可編程門陣列計(jì)算精度
        基于多矩形餅切函數(shù)的彈藥毀傷效能評(píng)估方法
        爆炸與沖擊(2024年3期)2024-11-01 00:00:00
        基于SHIPFLOW的散貨船阻力預(yù)報(bào)分析
        廣東造船(2018年4期)2018-10-09 06:08:18
        Abaqus多尺度有限元模型在橋梁工程中的應(yīng)用
        世界家苑(2018年1期)2018-04-27 11:42:06
        基于SHIPFLOW軟件的某集裝箱船的阻力計(jì)算分析
        廣東造船(2018年1期)2018-03-19 15:50:50
        D—BLAST基帶系統(tǒng)的FPGA實(shí)現(xiàn)研究
        一種千兆以太網(wǎng)SerDes 接口與電接口的轉(zhuǎn)換方法
        基于FPGA的遺傳算法在交通控制中的應(yīng)用
        基于FPGA的顏色識(shí)別觸摸屏系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        單元類型和尺寸對(duì)拱壩壩體應(yīng)力和計(jì)算精度的影響
        基于查找表和Taylor展開的正余弦函數(shù)的實(shí)現(xiàn)
        国产做床爱无遮挡免费视频 | 亚洲精品国产熟女久久久| 漂亮人妻被强了完整版| 内地老熟女老少配视频| 中文字幕欧美一区| 日韩成人精品一区二区三区| 国产一区二区三区色哟哟| 国产精品久线在线观看| 亚洲熟妇无码av不卡在线播放 | 欧美日韩亚洲成色二本道三区 | 免费二级毛片在线播放| 亚洲不卡高清av在线| 国产av精品一区二区三| 精品久久久噜噜噜久久久| 免费一级欧美大片久久网| 白白色免费视频一区二区在线| 丰满人妻被两个按摩师| 最近免费中文字幕| 麻豆人妻无码性色AV专区| 人妻有码av中文幕久久| 日本黄网色三级三级三级| 日韩国产人妻一区二区三区| 色妞www精品视频| jk制服黑色丝袜喷水视频国产| 久久老熟女一区二区三区福利| 亚洲乱亚洲乱妇| 久久免费国产精品| 亚洲一区二区精品在线看| 国产一区二区三区三区四区精品| 色一情一乱一乱一区99av| 日韩久久久久中文字幕人妻| 中文字幕人妻互换激情| 五月天中文字幕mv在线| 精品久久久久久久久免费午夜福利| 亚洲精品在线观看一区二区 | 麻豆三级视频网站在线观看| 精品福利一区二区三区免费视频| 国产精品人妻一区夜夜爱| 激情综合网缴情五月天| 日本男人精品一区二区| 日本aⅴ大伊香蕉精品视频|