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

        ?

        任意波形發(fā)生器ROM查找表的設(shè)計(jì)

        2008-04-12 00:00:00徐丹旸張曉紅
        現(xiàn)代電子技術(shù) 2008年11期

        摘 要:基于直接數(shù)字合成器(DDS)技術(shù)設(shè)計(jì)的任意波形發(fā)生器中,ROM查找表是DDS模塊的一個(gè)重要環(huán)節(jié),主要用于存儲(chǔ)系統(tǒng)的波形數(shù)據(jù)。介紹使用C語言、Matlab和DSP Builder三種方法生成正弦波、三角波、鋸齒波和方波的查找表初始化波形數(shù)據(jù),并對(duì)每一種方法的程序設(shè)計(jì)、參數(shù)設(shè)置以及波形仿真都作了詳細(xì)說明,所有波形數(shù)據(jù)均在GW48-SOPC開發(fā)系統(tǒng)中測(cè)試通過。

        關(guān)鍵詞:直接數(shù)字合成器;查找表;任意波形發(fā)生器;DSP Builder

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:B

        文章編號(hào):1004-373X(2008)11-172-02

        Design of Arbitrary Waveform Generator ROM LUT

        XU Danyang,ZHANG Xiaohong,WANG Yong

        (Electronic Information Engineering College,Henan University of Science and Technology,Luoyang,471003,China)

        Abstract:In the arbitrary waveform generator based on DDS,ROM LUT is an important element of the DDS module,which is used to store waveform data of the system.In the paper,using three methods,including C language,Matlab and DSP Builder,producing the arbitrary waveform initialization data of the sine wave,the triangular wave,the saw-tooth wave and the square-wave.Programming,parameter setting and waveform simulation are described to every method detailedly.All waveform data are verified by GW48-SOPC development system.

        Keywords:DDS;LUT;arbitrary waveform generator;DSP Builder

        1 引 言

        目前,利用FPGA設(shè)計(jì)任意波形發(fā)生器是經(jīng)常采用的一種方法,其核心是直接數(shù)字頻率合成器(DDS)。DDS系統(tǒng)一般包括系統(tǒng)時(shí)鐘、頻率預(yù)置與調(diào)節(jié)電路(頻率累加器)、相位累加器、ROM 查找表,輸出的數(shù)據(jù)通過外接的D/A轉(zhuǎn)換器和濾波器完成波形輸出。此系統(tǒng)中,ROM中波形數(shù)據(jù)的設(shè)計(jì)是完成任意波形的關(guān)鍵環(huán)節(jié)。構(gòu)成ROM中初始化波形數(shù)據(jù)文件的格式有兩種:Memory Initialization File(.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式,實(shí)際應(yīng)用中使用其中一種格式的文件即可。本文以圖1所示DDS系統(tǒng)為例,采用三種方法生成正弦波、三角波、矩形波和鋸齒波的ROM查找表。

        圖1 直接數(shù)字頻率合成器系統(tǒng)

        圖1所示系統(tǒng)參數(shù):系統(tǒng)時(shí)鐘(FCLK)為166.67 MHz(由FPGA時(shí)鐘50 MHz晶振通過PLL 3分頻10倍頻得到);頻率累加器位寬(N)為24位;相位累加器位寬為10位;ROM表數(shù)據(jù)位寬為8位;ROM表地址為10位。硬件選用GW48-SOPC開發(fā)系統(tǒng),其目標(biāo)芯片為Altera公司Cyclone系列EP1C6Q240C8。

        2 利用C語言生成MIF文件

        產(chǎn)生正弦波數(shù)據(jù)的C程序:

        #include\"stdio.h\"

        #include\"math.h\"

        #define N 1024

        void main()

        {

        FILE *fp;

        double y;

        int n;

        if((fp=fopen(\"sindata.mif\",\"w\"))==NULL)

        {printf(\"cannot open this file\\\\");

        exit(0);

        }

        fprintf(fp,\"WIDTH=10;\\\\");

        fprintf(fp,\"DEPTH=1024;\\\\");

        fprintf(fp,\"ADDRESSRADIX=DEC;\\\\");

        fprintf(fp,\"DATARADIX=DEC;\\\\");

        fprintf(fp,\"CONTENT BEGIN\\\\");

        for(n=0;n<=N-1;n++)

        {y=127.5+127.5*sin(n*3.1415926535/128);

        if(fmod(n,10)==0)

        {fprintf(fp,\"\\\\");}

        fprintf(fp,\"%4d:%4.0f;\",n,y);

        }

        fprintf(fp,\"\\\END;\");

        fclose(fp);

        }

        在TC環(huán)境下運(yùn)行,在Output文件夾下生成SIN101~1文件,運(yùn)行此文件得到SINDATA.mif文件。文件內(nèi)容如下:

        WIDTH=10;

        DEPTH=1024;

        ADDRESSRADIX=DEC;

        DATARADIX=DEC;

        CONTENT BEGIN

        0:128;1:131;2:134;3:137;4:140;5:143;6:146;7:149;8:152;9:155;10:158;11:162;12:165;13:167;14:170;15:173;16:176;17:179;18:182;19:185;

        …(略去數(shù)據(jù))

        1020:115;1021:118;1022:121;1023:124;

        END;

        3 用Matlab生成.mif數(shù)據(jù)文件

        利用Matlab可以生成.mif文件,但此文件不能直接在定制ROM中使用,可以把Matlab計(jì)算出來的數(shù)據(jù)粘貼到QuartusⅡ中生成.mif文件,以三角波為例說明。

        圖2 Matlab中三角波波形

        Matlab生成三角波數(shù)據(jù)的程序:

        clear

        clc

        Fs=1023;%只要1 024個(gè)值

        t=0:0.2/Fs:0.2;

        x1=round((sawtooth(2*pi*5*t,0.5)+1)/2*255)′;%三角波歸一化

        plot(t,x1),axis([0,0.2,0,255])

        len=length(x1)%len=1 024

        fid= fopen(′d:\\\\deltarom.mif′,′w′);%為幅度值的存儲(chǔ)準(zhǔn)備一個(gè)文件

        fprintf(fid,′MEMORYINITIALIZATIONRADIX=16;\\\′);

        fprintf(fid,′MEMORYINITIALIZATIONVECTOR=\\\′);

        for i = 1:len%len=1 024

        fprintf(fid,′%x,\\\′,x1(i));%循環(huán)將值寫入文件中

        end

        fclose(fid);

        打開Matlab的Workspace中參量X1, 復(fù)制里面生成的1 024個(gè)數(shù)據(jù)。在QuartusⅡ中打開ROM數(shù)據(jù)文件編輯窗,即File\\\\New\\\\Other files\\\\Memory Initialization File,根據(jù)DDS設(shè)計(jì)要求,設(shè)置ROM的數(shù)據(jù)數(shù)Number為1 024,數(shù)據(jù)寬Word size取8位,把Matlab中的波形數(shù)據(jù)粘貼入.mif數(shù)據(jù)表格,保存此數(shù)據(jù)文件即可。若希望生成其他波形數(shù)據(jù),只需修改程序中“x1=round((sawtooth(2*pi*5*t,0.5)+1)/2*255)′”語句即可。

        4 利用DSP Builder生成波形數(shù)據(jù)文件

        利用DSP Builder生成.mif和.hex格式的波形數(shù)據(jù)文件是最簡(jiǎn)便的方法。在Matlab的Simulink環(huán)境中,用圖形方式調(diào)用DSP Builder和Simulink庫中的圖形模塊完成設(shè)計(jì)和仿真,如圖3所示。若仿真正確, DSP Builder可直接生成.hex和.mif文件,在其數(shù)據(jù)文件目錄中可以找到。只需設(shè)置圖3中LUT模塊參數(shù),就可以改變輸出波形類型、幅值和數(shù)據(jù)文件(.hex或.mif) 大小。

        圖3 利用DSP Builder設(shè)計(jì)信號(hào)發(fā)生器

        根據(jù)前述設(shè)計(jì)要求,在LUT參數(shù)選項(xiàng)中,Bus Type:Unsigned Integer;Out:8;LUT Address Wide:10;Matlab Array:127*sawtooth([0:2*pi/(2^10):2*pi],1)+128(鋸齒波公式,使用了歸一算法,保證波形幅值在0~255之間,便于進(jìn)行D/A轉(zhuǎn)換)。仿真結(jié)果如圖4所示。修改Matlab Array中的式子,即可生成正弦波(圖5)、方波(圖6)、三角波。

        圖4 鋸齒波仿真波形

        圖5 正弦波仿真波形

        圖6 方波仿真波形

        正弦波:127*sin( [0:2*pi/(2^10):2*pi] )+128

        方波:127*square([0:2*pi/(2^10):2*pi],50)+128

        三角波:127*sawtooth([0:2*pi/(2^10):2*pi],0.5)+128

        從仿真圖中可以看到,輸出波形在0~255之間,符合8位D/A轉(zhuǎn)換器DAC0832輸入要求。

        5 結(jié) 語

        生成.hex或.mif文件后,就可以定制ROM元件,很多資料中都有詳細(xì)介紹,這里不再詳述。本文介紹的三種方法所生成的波形數(shù)據(jù)均已在GW48-SOPC開發(fā)系統(tǒng)上通過驗(yàn)證,但推薦采用DSP Builder生成數(shù)據(jù)文件的方法,因該方法不但參數(shù)設(shè)置簡(jiǎn)便,而且易于進(jìn)行仿真驗(yàn)證。總之,不論采用哪種方法生成ROM查找表,都要參照系統(tǒng)芯片類型和D/A轉(zhuǎn)換器等硬件資源條件完成設(shè)計(jì)。

        參 考 文 獻(xiàn)

        [1]鄭亞民,董曉舟.可編程邏輯器件開發(fā)軟件QuartusⅡ\\[M\\].北京:國(guó)防工業(yè)出版社,2006.

        [2]潘松,黃繼業(yè),曾毓.SOPC技術(shù)實(shí)用教程\\[M\\].北京:清華大學(xué)出版社,2005.

        [3]任勇峰,莊新敏.VHDL與硬件實(shí)現(xiàn)速成\\[M\\].北京:國(guó)防工業(yè)出版社,2005.

        [4]求是科技.Matlab 7.0從入門到精通\\[M\\].北京:人民郵電出版社,2006.

        [5]余勇,鄭小林.基于FPGA的DDS正弦信號(hào)發(fā)生器的設(shè)計(jì)和實(shí)現(xiàn)\\[M\\].電子器件,2005,28(3):595-599.

        作者簡(jiǎn)介 徐丹旸 女,1977年出生,湖南長(zhǎng)沙市人,講師(碩士)。研究方向?yàn)殡娮覧DA。

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

        播放灌醉水嫩大学生国内精品 | 日韩一线无码av毛片免费| 国产激情一区二区三区成人免费| 亚洲一区二区三区厕所偷拍| 国产高颜值女主播在线| 亚洲av日韩av无码污污网站| 正在播放国产多p交换视频| 国产天堂av手机在线| 在线精品首页中文字幕亚洲| 成 人 免费 在线电影| 成人伊人亚洲人综合网站222| 日本中文字幕av网址| 一区二区三区国产黄色| 97无码免费人妻超级碰碰夜夜| 日本国产视频| 成人激情视频一区二区三区| 亚洲黄色天堂网站在线观看禁18| 99精品国产一区二区三区a片| 国产精品美女久久久久久大全| 精品国产车一区二区三区| 亚洲精品宾馆在线精品酒店| 欧洲一卡2卡三卡4卡免费网站 | 久久精品国产亚洲av调教| 亚洲免费国产中文字幕久久久| 免费少妇a级毛片人成网| 曰韩精品无码一区二区三区| 亚洲国产av中文字幕| 99久久99久久精品国产片| 久久99精品国产麻豆| 国产老妇伦国产熟女老妇高清| 亚洲av天堂在线免费观看| 亚洲av永久无码天堂网| 亚洲巨乳自拍在线视频| 亚洲成a人片在线观看中| 少妇一区二区三区久久| 欧洲女人性开放免费网站| 国产在线精品一区二区在线看 | 成人午夜性a级毛片免费| JIZZJIZZ国产| 一本色道加勒比精品一区二区 | 亚洲av老熟女一区二区三区 |