|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟最近一直想尝试用dds发送固定个周期的正弦信号(现在数量无所谓只要产生随意固定数目就行了),代码一直觉得没啥问题,不知道为何产生波形一直是一个一个周期正弦一个周期直流的波形。代码如下,请各位赐教:
module sintest(clk,reset_n,DACLK,wave);
input clk;
input reset_n;
output DACLK;
output [7:0]wave;
assign DACLK = clk;
reg[24:0] COUNT;
reg [3:0]times;
reg[9:0] address;
reg rden;
always @(posedge clk )
begin
COUNT <= COUNT +25'd3355;
address<= COUNT[23:14];
if(COUNT[24]==1)
times<=times+1;
end
always @ (posedge clk )
begin
if (times<=4'b0011)
rden<=1;
else rden<=0;
end
sin (address,clk,rden,wave);
endmodule
其中rden是sin ROM的数据读取使能,按照我的理解,我取COUNT最高位为标志位,它变成1,我times+1,由于最后times肯定大于3所以肯定是产生五个波形正弦波,后面没有波形。
等times循环变成4b'0000,再次循环。
小弟想问问,我这种思路是否可行?
代码逻辑问题出在哪里?
如果要实现我想要的功能有没有更好的办法?
谢谢各位了! |
|