DDS直接数字频率合成器.docVIP

  • 7
  • 0
  • 约3.08万字
  • 约 67页
  • 2021-05-28 发布于湖北
  • 举报
西安邮电学院 验证方案 总体验证方案 系统功能描述: 8×256的单口RAM完成256个8位计数器,计数器的初值分别为0-255,时钟频率为10MHz,计数器计数频率为5/256MHz。 具体功能: RAM的每一个存储器都可以实现0-255的计数功能,并且数码管显示当前工作的寄存器中的数据。当一个计数周期后,寄存器中的数据跳回初始状态,并且自动开始工作。 具体模块的验证方案 时钟分频模块 功能描述: 该模块把系统外部输入的信号clk(10MHZ)进行二分频,输出系统时钟clk_2(5MHZ)。 代码: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;

文档评论(0)

1亿VIP精品文档

相关文档