DDS直数字频率合成器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DDS直数字频率合成器

西安院module div_2 (clk_2,clk,div_set); output clk_2; input div_set; input clk; reg clk_2; always @ (posedge clk or posedge div_set) begin if (div_set) clk_2=1b0; else clk_2=~clk_2; end endmodule 具体验证: 分频控制信号(div_set=0)时输出频率(clk_2)的始终为0。 分频控制信号(div_set=1)时输出信号(clk_2)与系统外部输入信号(clk)的频率满足二分频关系。 计数器模块 功能描述: 计数器可以实现0-255的自加功能,当一个计数周期完后,自动开始下一个计数周期。 代码:module count(in,en,clk_2,out,set); input [7:0] in; input en,clk_2,set; output out; reg [7:0] out; always @ (set) out= in; always@(posedge clk_2) if(set) out=8 else if(en) out=out+1; else out=out; endmodule 单口RAM模块 功能描述: 该RAM有256个存储器,当复位信号ram_set的电平为底时,存储器地址归零。当地址控制信号address_set电平发生跳变时,存储器地址自动加1。当读写信号w_r为高时,RAM模块向外写数据;当w_r为低电平时,RAM从外读信号。 具体验证: 当输入信号ram_set电平发生变化后,验证地址是否发生变化。 读写信号w_r为低时候,验证存储器中的数据是否是输入数据;当w_r为高电平时,验证输出数据是否是存储器中的数据。 代码: module ram(clk_2,w_r,data_in,ram_set,address_set,data_out); input clk_2,w_r; input [7:0]data_in; input ram_set; input address_set; output data_out; reg [7:0] address; reg [7:0] data_out; reg [7:0] mem [0:255]; always @ (posedge clk_2 or negedge ram_set) if(!ram_set) address=7 always @ (posedge address_set or negedge address_set) address=address+7 always@(posedge clk_2) if (w_r) data_out=mem[address]; else mem[address]=data_in; endmodule 译码模块 功能描述: 把输入数据对应的十进制熟的百位,个位,十位数据分别输出。 具体验证: 当输入信号t_in为某一值时,验证输出信号bai_out,shi_out,ge_out是否是对应的输入数据对应的十进制数的百位、十位、个位。 代码:module translate(clk_2,t_in,bai_out,shi_out,ge_out); input clk_2; input[7:0] t_in; output bai_out; output shi_out; output ge_out; reg[3:0] bai_out; reg[3:0] shi_out; reg[3:0] ge_out; always @(posedge clk_2) begin bai_out=t_in/7d100; shi_out=(t_in/4d10)%4d10; ge_out=t_in%4d10; end endmodule 动态显示模块 功能描述: 将三个输入信号dis_in_1,dis_in_2,dis_in_3的数值转化为对应七段数码管显示的状态。其中输入信号dis_set为高时,模块内寄存器

文档评论(0)

vshoulrengb3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档