|
由于fpga不太精通,特请高手讨论,想实现的功能是输出可改变频率的PWM。使用两路钟,两路时钟由同一系统时钟分出,相差6倍,快的时钟用来做计算,慢的用来计算翻转周期。
翻转周期代码如下:
always@(negedge clk)
begin
cnt_V <= (cnt_A >> 1);
if(cnt2 >cnt_V)begin
cnt2 <= 1;
dir_r1 <= ~dir_r1;
end
else begin
cnt2 <= cnt2 + 1'b1;
dir_r1 <= dir_r1;
end
end
每一次慢时钟上升沿将触发一次。
输出则因为要选择模式所以由快时钟输出
always@(negedge fastclk)
begin
w_clk_out <= dir_r1 && (constant_start[0] | start_sig_t[0]);
end
现在问题是:如果cnt_A 和cnt_V 为固定数也是一样无法输出对称波形 以下是300K时的波形,快时钟频率为300MHZ,计算周期时钟为50MHZ,使用仿真没有问题,实际应用就成这鸟样了。
请高手指点一二,如能解决必有重谢 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|