为什么MAX +PLUS®II软件在使用Verilog HDL时会错误地综合比较运算符? (MAX + PLUS II版本9.3x)-Altera-Intel社区-FPGA CPLD-ChipDebug

为什么MAX +PLUS®II软件在使用Verilog HDL时会错误地综合比较运算符? (MAX + PLUS II版本9.3x)

MAX + PLUS II软件版本9.4修复了此问题。

MAX + PLUS II软件可能在需要比较的Verilog HDL设计中错误地综合无符号比较运算符( <<=>>===!= )。

请考虑以下示例代码:

模块sm(同步,clk);
              输入clk;
              输出同步;
              reg同步;
              reg [9:0] sCnt;
                   永远@(posedge clk)
                     如果(sCnt <65)
                        Sync = 0;
                     其他
                        Sync = 1;
       endmodule 

在此示例中,编译器将在应使用无符号比较时实现签名比较。使用以下编码样式正确综合UNSIGNED比较的实现:

模块sm(同步,clk);
               输入clk;
               输出同步;
               reg同步;
               reg [9:0] sCnt;
         永远@(posedge clk)
            if(sCnt <10'd65)
              Sync = 0;
            其他
              Sync = 1;
      endmodule 
请登录后发表评论

    没有回复内容