搜索
bottom↓
回复: 0

ISE综合错误:Failed to synthesize logic for signal

[复制链接]

出0入0汤圆

发表于 2010-7-21 20:00:06 | 显示全部楼层 |阅读模式
最近用ISE写个频率计的verilog程序 刚学ISE,感觉很多综合时限制很多,比quartus难用很多     下面这个报错弄了很久没发现错在哪,在quartus里综合能通过,但在ISE里综合就不行,能哪位大虾能指点一二吗?不胜感激!

`timescale 1ns / 1ps
module plj(clk,clk_test,sw0,sw1,rst,out_wei,out_duan,miao);
input clk,rst,clk_test,sw0,sw1;
output reg[3:0] out_wei;
output reg[7:0] out_duan;
output reg miao;
reg [27:0]count2;
reg [3:0] ge,shi,bai,qian,p_10K,p_100K,p_M,p_10M,p_100M,s_ge,s_shi,s_bai,s_qian,s_10K,s_100K,s_M,s_10M,s_100M;
reg flag=0;
reg [19:0] saomiao=0;
reg [3:0] duan;
[email=always@(posedge]always@(posedge[/email] clk)
begin if(!rst) begin count2<=0;flag<=0; end
   else begin count2<=count2+1;
       if(count2==50000000) begin flag<=1;miao<=1;end
       if(count2>=100000000)begin flag<=0;count2<=0;miao<=0;end
       end
end


[email=always@(posedge]always@(posedge[/email] clk_test or negedge rst)
begin if(!rst) begin ge<=0;shi<=0;bai<=0;qian<=0;p_10K<=0;p_100K<=0;p_M<=0;p_10M<=0;p_100M<=0; end
   else if(count2==60000000) begin ge<=0;shi<=0;bai<=0;qian<=0;p_10K<=0;p_100K<=0;p_M<=0;p_10M<=0;p_100M<=0;end
   else if(!flag)
      begin
        ge<=ge+1;  
        if(ge==9) begin ge<=0;shi<=shi+1;  
             if(shi==9) begin shi<=0;bai<=bai+1;
                     if(bai==9)   begin bai<=0;qian<=qian+1;
                             if(qian==9) begin qian<=0;p_10K<=p_10K+1;
                                    if(p_10K==9)  begin p_10K<=0;p_100K<=p_100K+1;
                                       if(p_100K==9) begin p_100K<=0;p_M<=p_M+1;
                                              if(p_M==9) begin p_M<=0;p_10M<=p_10M+1;           
                                                                   if(p_10M==9) begin p_10M<=0;p_100M<=p_100M+1; end                       
           end              end               end                 end                end                  end               end               end
   else begin ge<=ge;shi<=shi;bai<=bai;qian<=qian;p_10K<=p_10K;p_100K<=p_100K;p_M<=p_M;p_10M<=p_10M;p_100M<=p_100M; end  
end   
[email=always@(posedge]always@(posedge[/email] clk or negedge rst)
begin if(!rst) saomiao<=0;
   else begin saomiao<=saomiao+1;
        if(saomiao==1000000) saomiao<=0;
      end
end

[email=always@(posedge]always@(posedge[/email] clk or negedge rst)
begin if(!rst) begin s_ge<=0;s_shi<=0;s_bai<=0;s_qian<=0;s_10K<=0;s_100K<=0;s_M<=0;s_10M<=0;s_100M<=0; end
   else if(count2==50000000) begin s_ge<=ge;s_shi<=shi;s_bai<=bai;s_qian<=qian;s_10K<=p_10K;s_100K<=p_100K;s_M<=p_M;s_10M<=p_10M;s_100M<=p_100M;              
                             end         
end

[email=always@(posedge]always@(posedge[/email] clk or negedge rst)
begin           
   if(!rst) begin        
        case(saomiao)
          0:begin out_wei<=4'b1000;
             duan<=0;
            end
         250000:begin out_wei<=4'b0100;
             duan<=1;
            end
         500000:begin out_wei<=4'b0010;
             duan<=2;
            end
         750000:begin out_wei<=4'b0001;
             duan<=3;
            end                  
        endcase
      end
      
   else if((sw1==0)&&(sw0==0))
      begin case(saomiao)
          0:begin out_wei<=4'b1000;
             duan<=s_ge;
            end
         250000:begin out_wei<=4'b0100;
             duan<=s_shi;
            end
         500000:begin out_wei<=4'b0010;
             duan<=s_bai;
            end
         750000:begin out_wei<=4'b0001;
             duan<=s_qian;
            end
        default:begin out_wei<=out_wei;
             duan<=duan;
            end
        endcase
      end
      
   else if((sw1==0)&&(sw0==1)) begin
            case(saomiao)
          0:begin out_wei<=4'b1000;
             duan<=s_10K;
            end
         250000:begin out_wei<=4'b0100;
             duan<=s_100K;
            end
         500000:begin out_wei<=4'b0010;
             duan<=s_M;
            end
         750000:begin out_wei<=4'b0001;
             duan<=s_10M;
            end
         default:begin out_wei<=out_wei;
             duan<=duan;
            end
        endcase
             end
      
   else if((sw1==1)&&(sw0==1)) begin
          case(saomiao)
          0:begin out_wei<=4'b1000;
             duan<=s_100M;
            end
         250000:begin out_wei<=4'b0100;
             duan<=0;
            end
         500000:begin out_wei<=4'b0010;
             duan<=0;
            end
         750000:begin out_wei<=4'b0001;
             duan<=0;
            end
         default:begin out_wei<=out_wei;
             duan<=duan;
            end
        endcase
             end
end

[email=always@(posedge]always@(posedge[/email] clk)
  case(duan)
    0ut_duan<=8'h3f;
    1ut_duan<=8'h06;
    2ut_duan<=8'h5b;
    3:out_duan<=8'h4f;
    4:out_duan<=8'h66;
    5:out_duan<=8'h6d;
    6:out_duan<=8'h7d;
    7:out_duan<=8'h07;
    8:out_duan<=8'h7f;
    9:out_duan<=8'h6f;
    //default:out_duan<=8'hff;
  endcase

endmodule

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 17:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表