欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    DDS算法的Verilog 实现.docx

    • 资源ID:3155539       资源大小:37.59KB        全文页数:3页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DDS算法的Verilog 实现.docx

    DDS算法的Verilog 实现一、 DDS设计要求 用Verilog HDL语言实现基于DDS技术的余弦信号发生器,其输出位宽为 16bit。 二、 使用MATLAB定点正、余弦波形数值 借助MATLAB生成ROM中的定点正、余弦波形数值,形成.coe文件。 1利用MATLAB计算出正、余弦波形的浮点值,并量化 16bit 的定点波形数值2。 x= linspace(0,6.28,1024); %在区间0,6.28之间等间隔地取1024个点 y1=cos(x); %计算相应的正余弦值 y2=sin(x); %由于正余弦波形的值在0,1之间,需要量化成16bit,先将数值放大 y1=y1*32678; y2=y2*32768; %再将放大的浮点值量化,并写到存放在E盘的文本中 fid = fopen('e:/cos_coe.txt', 'wt'); fprintf(fid, '%16.0fn', y1); %在写文件时量化成16bit fclose(fid) fid = fopen('e:/sin_coe.txt', 'wt'); fprintf(fid, '%16.0fn', y2); fclose(fid) 2产生.coe 文件 在 e 盘根目录下,将 cos_coe.txt 和 sin_coe.txt 的后缀改成.coe,打开文件,把每一行之间的空格用文本的替换功能换成逗号“,”,并在最后一行添加一个分号“;”。最后在文件的最开始添加下面两行: memory_initialization_radix=10; memory_initialization_vector = 然后保存文件退出。 三、将 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文件生成的不对,图中用椭圆标志之处是红色的,.coe 文件错误的类型主要有数据基数不对和数据的长度不对这两类。 四、 DDS的Verilog HDL的实现 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; /复位 output 15 : 0 sine; /正弦信号输出 output 15 : 0 cose; /余弦信号输出 reg 31 : 0 ADD_A; /正弦波产生模块的相位累加器 reg 31 : 0 ADD_B; /余弦波产生模块的相位累加器 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_B31 : 22; always (posedge clk or posedge reset) begin if(reset) /系统初始化时,默认的频率控制字为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为累加的结果 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 /调用两个ROM,存储着正余弦波形一个周期的数值 cos u1( .clka(clk), .addra(ROM_A), .douta(cose_D); sin u2( .clka(clk), .addra(ROM_A), .douta(sine_D); endmodule

    注意事项

    本文(DDS算法的Verilog 实现.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开