quartus RTL仿真和门极仿真结果不一样怎么处理

2020-02-02 11:07发布

用quartus写了一个pwm(用增减计数方式调制)程序,编译综合都通过了,RTL仿真也是对的,但是门极仿真出来的结果不对,想问一下为什么?麻烦大家帮忙看看 QQ截图20170704094658.jpg
RTL仿真结果,注意红圈的地方没有毛刺
QQ截图20170704095256.jpg
门极仿真结果,注意红圈的地方有毛刺

  1. module   CPLD6(CLK_150M,pwm1,pwm2)/*synthesis noprune*/;
  2.                        
  3.         input CLK_150M;
  4.         output pwm1,pwm2;               
  5.         wire[10:0] C0,C1/*synthesis keep*/;

  6.         UD_Cnt UD0(CLK_150M,C0);
  7.         assign
  8.                 pwm1 = (100 > C0) ? 1'b1:1'b0;
  9.                
  10. endmodule

  11. module UD_Cnt(CLK_udcnt,UD_counter)/*synthesis noprune*/;
  12. parameter CNT_ini = 11'D167,Dir_ini = 1'B0;
  13.         input CLK_udcnt;
  14.         output reg[10:0] UD_counter/*synthesis noprune*/;
  15.         reg Dir;
  16.        
  17.         initial
  18.         begin
  19.                 UD_counter = CNT_ini;
  20.                 Dir = Dir_ini;
  21.         end
  22.         always[url=home.php?mod=space&uid=72445]@[/url] (posedge CLK_udcnt)
  23.    begin
  24.                 if(Dir == 0)
  25.                         UD_counter = UD_counter + 10'D1;
  26.                 else
  27.                         UD_counter = UD_counter - 10'D1;
  28.    end
  29.        
  30.         always@ (posedge CLK_udcnt)
  31.         begin
  32.                 if((UD_counter == 1001)&(Dir == 0))
  33.                         Dir = 1;
  34.                 else if((UD_counter == 1)&(Dir == 1))
  35.                         Dir = 0;
  36.         end
  37. endmodule
复制代码



CPLD6.rar (381.67 KB, 下载次数: 0) 2017-7-4 09:59 上传 点击文件名下载附件

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。