国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

kswork的個人空間 http://m.qingdxww.cn/space-uid-30834.html [收藏] [復(fù)制] [RSS]

博客

DDS算法的Verilog 實(shí)現(xiàn)

已有 2412 次閱讀2011-8-15 21:30

3.1 DDS設(shè)計要求

Verilog HDL語言實(shí)現(xiàn)基于DDS技術(shù)的余弦信號發(fā)生器,其輸出位寬為 16bit

3.2  使用MATLAB定點(diǎn)正、余弦波形數(shù)值

借助MATLAB生成ROM中的定點(diǎn)正、余弦波形數(shù)值,形成.coe文件。

1.利用MATLAB計算出正、余弦波形的浮點(diǎn)值,并量化 16bit 的定點(diǎn)波形數(shù)值[2]

x= linspace(0,6.28,1024); %在區(qū)間[06.28]之間等間隔地取1024個點(diǎn)

y1=cos(x); %計算相應(yīng)的正余弦值

y2=sin(x);

%由于正余弦波形的值在[01]之間,需要量化成16bit,先將數(shù)值放大

y1=y1*32678; 

y2=y2*32768;

%再將放大的浮點(diǎn)值量化,并寫到存放在E盤的文本中

fid = fopen('e:/cos_coe.txt', 'wt');

fprintf(fid, '%16.0f\n', y1);  %在寫文件時量化成16bit

fclose(fid)

fid = fopen('e:/sin_coe.txt', 'wt');

fprintf(fid, '%16.0f\n', y2);

fclose(fid)

2產(chǎn)生.coe 文件

 盤根目錄下,將 cos_coe.txt  sin_coe.txt 的后綴改成.coe,打開文件,把每一行之間的空格用文本的替換功能換成逗號“,”,并在最后一行添加一個分號“;”。最后在文件的最開始添加下面兩行:

memory_initialization_radix=10;

memory_initialization_vector = 

然后保存文件退出。

3.3 coe 文件加載到BLOCKROM所生成的ROM

新建一個BLOCKRAM IP Core,其位置為Memories & Storage Elements/RAMs & ROMs/Block Memory Generator v4.3,在第一頁選擇single port rom,在第二頁選擇位寬為16、深度為1 024,在第三頁下載.coe 文件,然后雙擊 finish,完成IP core 的生成。如果.coe文件生成的不對,圖中用橢圓標(biāo)志之處是紅色的,.coe 文件錯誤的類型主要有數(shù)據(jù)基數(shù)不對和數(shù)據(jù)的長度不對這兩類。

 

3.4 DDSVerilog HDL的實(shí)現(xiàn)

`timescale 1ns / 1ps

module dds(data, we, clk, ce, reset, sine, cose);

 

input [31 : 0] data;   //頻率控制字

input we;              //頻率控制字寫使能

input clk;                //時鐘

input ce;               //DDS使能

input reset;            //復(fù)位

output [15 : 0] sine;   //正弦信號輸出

output [15 : 0] cose;   //余弦信號輸出

 

reg [31 : 0] ADD_A;   //正弦波產(chǎn)生模塊的相位累加器

reg [31 : 0] ADD_B;   //余弦波產(chǎn)生模塊的相位累加器

reg [15 : 0] cose_DR;   //余弦波的查找表輸出

reg [15 : 0] sine_DR;   //正弦波的查找表輸出

wire [31 : 0] data;   //頻率控制字

wire [9 : 0] ROM_A;

wire [15 : 0] cose_D;

wire [15 : 0] sine_D;

 

assign cose = cose_DR;

assign sine = sine_DR;

assign ROM_A = ADD_B[31 : 22];

 

always @ (posedge clk or posedge reset)

begin

    if(reset)  //系統(tǒng)初始化時,默認(rèn)的頻率控制字為0

         ADD_A <= 0;

    else if(we)

         ADD_A <= data;

end

 

always @ (posedge clk or posedge reset)

begin

    if(reset)

          ADD_B <= 0;

    else if(ce)

          ADD_B <= ADD_B + ADD_A;  //ADD_B為累加的結(jié)果

end

 

always @ (posedge clk or posedge reset)

begin

    if(reset)

         cose_DR <= 0;

    else if(ce)

         cose_DR <= cose_D;

end

 

always @ (posedge clk or posedge reset)

begin

    if(reset)

         sine_DR <= 0;

    else if(ce)

         sine_DR <= sine_D;

end

 

//調(diào)用兩個ROM,存儲著正余弦波形一個周期的數(shù)值

cos u1(

         .clka(clk),

   .addra(ROM_A),   

   .douta(cose_D));

   

sin u2(

         .clka(clk), 

   .addra(ROM_A),

   .douta(sine_D));

 

endmodule    

 


路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 日本阿v片在线播放免费| 手机在线观看亚洲国产精品| 欧美一卡二卡3卡4卡无卡免费 | 亚洲视频天天射| 日本一区二区三区在线 视频观看免费| 新版天堂中文资源8在线| 四虎影片| 优优色票院| 国产精品人妻系列21P| 亚洲AV精品无码成人| 四虎精品久久久久影院| 性夜影院爽黄a爽在线看香蕉| 色综合888| 亚洲国产精品尤物yw在线观看 | 青青伊人精品| 亚洲精品免费在线观看| 香蕉久久国产精品免| 综综综综合网| 精品国产品国语在线不卡| 天天躁日日躁狠狠躁中文字幕老牛| 日韩3区| 日本不卡一区二区三区在线观看| 色综合婷婷久久爱伊人| 一个人的在线视频| 国产成人免费在线观看| 日本不卡不码高清免费| 亚色视频在线| 日韩另类| 色综合色狠狠天天综合色| 7723日本高清完整版在线观看| 久久精品18| 亚洲乱亚洲乱妇13p| 亚洲国产成人精品区| 天天射综合| 一级色黄| 美女洗澡脱得一二干净| 尤物yw193can入口| 欧美亚洲777| 午夜一级福利| 亚洲精品91在线| 国产成人在线观看免费网站|