在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2260|回复: 2

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

[复制链接]
发表于 2012-3-27 08:51:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 jamiedame 于 2012-3-28 08:35 编辑

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. 红色语句为出错语句

 楼主| 发表于 2012-3-28 08:34:33 | 显示全部楼层
百度知道上有高手给出解决方法了,就是always@(posedgeodd_done or posedgeeven_done) 这里不能综合,修改后好了。
发表于 2012-3-30 22:47:54 | 显示全部楼层
双沿触发器  现在一般有用这个的么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-10 00:07 , Processed in 0.020015 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表