kswork的個(gè)人空間 http://selenalain.com/space-uid-30834.html [收藏] [復制] [RSS]

博客

DDS算法的Verilog 實(shí)現

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

3.1 DDS設計要求

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

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

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

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

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

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

y2=sin(x);

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

y1=y1*32678; 

y2=y2*32768;

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

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

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

fclose(fid)

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

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

fclose(fid)

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

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

memory_initialization_radix=10;

memory_initialization_vector = 

然后保存文件退出。

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

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

 

評論 (0 個(gè)評論)

facelist

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

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页