微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 代码综合出现的错误,请指教

代码综合出现的错误,请指教

时间:10-02 整理:3721RD 点击:
我的代码在功能仿真阶段是正确的,而综合时就会出错,请各位指点一下:
代码如下:
module counter(CLK_100M, RST, DIN, CLK_1M, OUT);
    input CLK_100M;
  input DIN;
  input RST;
  output CLK_1M;
  output [7:0]OUT;
  
  reg [5:0]j;
  reg CLK_1M;
  
  reg CNT1_EN;
  reg [7:0]k;
  reg LOCK;
  
  wire CLR;
  
  reg [7:0]Photo_Q1;
  reg [7:0]Photo_Q2;
  
  reg [7:0]OUT;
  
  
//  CLK_1M     division module
   always@(posedge[/email] CLK_100M)
   if(!RST)
     begin j<=0; CLK_1M<=0; end
   else if(j==49)
              begin  CLK_1M<=~CLK_1M; j<=0; end
           else
              j<=j+1;  
//  EN,LOCK
   always @(posedge CLK_100M)
   if (!RST)
     begin k<=0; CNT1_EN<=0; end
   else if(k==99)
           begin k<=0; CNT1_EN<=~CNT1_EN; LOCK<=1;end
     else
             begin k<=k+1; LOCK<=0;end
   
//  assign CNT2_EN =~CNT1_EN;
            
// CLR
       assign CLR=~LOCK;

//  photo_Q1, photo_Q2      Counter   
  always @(posedge CLK_100M)
     if(!RST)
     begin Photo_Q1 <=0; Photo_Q2 <=0; end
   else if (CNT1_EN)
             if(DIN)
            Photo_Q1 <=Photo_Q1+1;
        else
                      Photo_Q1 <=Photo_Q1;
         else
              if(DIN)
           Photo_Q2 <=Photo_Q2+1;
      else
                       Photo_Q2 <=Photo_Q2;      
// 锁存模块  
  always@(posedge[/email] LOCK )
    if(!CNT1_EN)
       begin OUT<=Photo_Q1; end
  else
       begin OUT<=Photo_Q2; end   
     
// 清零模块     
   always@(posedge[/email] CLR)
     if(!CNT1_EN)
     Photo_Q1<=0;
   else
         Photo_Q2<=0;

endmodule


提示error如下:
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<7>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_7>
   Signal <Photo_Q1<7>> in Unit <counter> is assigned to GND
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<6>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_6>
   Signal <Photo_Q1<6>> in Unit <counter> is assigned to GND
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<5>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_5>
   Signal <Photo_Q1<5>> in Unit <counter> is assigned to GND
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<4>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_4>
   Signal <Photo_Q1<4>> in Unit <counter> is assigned to GND
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<3>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_3>
   Signal <Photo_Q1<3>> in Unit <counter> is assigned to GND
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<2>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_2>
   Signal <Photo_Q1<2>> in Unit <counter> is assigned to GND
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<1>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_1>
   Signal <Photo_Q1<1>> in Unit <counter> is assigned to GND
ERROR:Xst:528 - Multi-source in Unit <counter> on signal <Photo_Q1<0>>
Sources are:
   Output signal of FDRE instance <Photo_Q1_0>
   Signal <Photo_Q1<0>> in Unit <counter> is assigned to GND

有信号在多个模块里面赋值了

能不能具体一些哪? 功能仿真是没有错误的;谢

也就是说:每个变量不能再多个always语句中被赋值

你在计数模块和清零模块里面都对photo_q进行赋值了 把清零模块也放到计数模块里面就可以了

I konw了,谢谢楼上的;就是说:同一个reg的赋值不要放到多个always块中。

同一个reg的赋值不要放到多个always块中

3年前的东西都能挖出来~

已经解决了啊

说说怎样弄好的?学习一下

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

网站地图

Top