微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > (已解决)新手第一次写程序综合出现xst 899错误求解

(已解决)新手第一次写程序综合出现xst 899错误求解

时间:10-02 整理:3721RD 点击:

reg [23:0] div_msb_lsb;  //[23:10]存储整数,且等于fosc/bps,[9:0]存储小数,共3位10进制小数
         reg [9:0] div_msb_lsb_10bit;
         reg [13:0] clk_cnt,clk1_cnt,clk2_cnt;
         reg [10:0]  acc_result;  //N_FRACT减去小数部分的累加值
         parameter N_FRACT = 10; //若小数位数为1位时,N_FRACT为10;若小数位数为2位时,N_FRACT为100;其它依此类推。
         wire clkn1,clkn2;
         reg odd_div_en,even_div_en;

always@(posedgeodd_done or posedgeeven_done) begin


                  if (enable_rcv_clk == 1) begin


                          acc_result = acc_result + N_FRACT - {1'b0 ,div_msb_lsb[9:0]};              //acc_result是11位的


                          if(acc_result< N_FRACT) begin                                //小于N_FRACT进行N+1分频,大于等于时进行N分频


                                     if(div_msb_lsb[14] == 1'b0) begin


                                                  div_msb_lsb_10bit <= div_msb_lsb[23:14] + 10'b1;//N+1为奇数时奇分频


                                                  odd_div_en = 1;


                                                   even_div_en = 0;


                                      end


                           else begin


                                       div_msb_lsb_10bit <= div_msb_lsb[23:14] + 10'b1;                     //N+1为偶数时偶分频


                                       odd_div_en = 0;


                                       even_div_en = 1;


                          end


                  end


            else begin


                         acc_result = acc_result - N_FRACT;                       //acc_result对N_FRACT取模求余


                         if(div_msb_lsb[14] == 1'b0) begin


                                      div_msb_lsb_10bit <= div_msb_lsb[23:14];//N为偶数时偶分频


                                       odd_div_en = 0;


                                       even_div_en = 1;


                        end


                         else begin


                                    div_msb_lsb_10bit <= div_msb_lsb[23:14];//N为奇数时奇分频


                                    odd_div_en = 1;


                                    even_div_en = 0;


                         end


           end


end

end

ISE综合时出现了[Xst 899] The logic for <div_msb_lsb_10bit> does not match a known FF or Latch template. 红色语句为出错语句

百度知道上有高手给出解决方法了,就是always@(posedgeodd_done or posedgeeven_done) 这里不能综合,修改后好了。

双沿触发器  现在一般有用这个的么

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top