加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

warning:xst647-input<>is never used的一个实例

(2010-08-21 10:46:51)
标签:

杂谈

分类: 光电技术

    近日在用XILINX ISE 调一个CPLD程序时,遭遇到以下警告: 

WARNING:Xst:647 - Input <countingin2> is never used.
WARNING:Xst:2677 - Node <rct2_15> of sequential type is unconnected in block <u3>.
......

WARNING:Xst:2677 - Node <rct2_0> of sequential type is unconnected in block <u3>.
WARNING:NgdBuild:452 - logical net 'counting2<15>' has no driver
......

WARNING:NgdBuild:452 - logical net 'counting2<0>' has no driver
 

   以下是部分源代码:

module dataoutput(input check,input ctflag,input[3:0] number,input[1:0] ctchoose,

                    input[15:0] countingin1,input[15:0] countingin2,output[7:0] data );

reg[7:0] datareg;  

assign data=datareg;

always@(posedge check)

begin
 if(ctflag)
    begin
       case(ctchoose) 
       00: datareg<=countingin1[7:0]; 
       01: datareg<=countingin1[15:8];
       10: datareg<=countingin2[7:0];
       11: datareg<=countingin2[15:8];
       endcase
    end
 else
   begin
       datareg[3:0]<=number[3:0];
       datareg[7:4]<=0;
   end 
end
endmodule

    仔细观察上述代码,发现出现warning的原因在于ctchoose的几个取值中,10和11是永远不可能的。源代码的本意是二进制的10和11,结果因为语法问题,让系统误认为是十进制的10和11,从而导致了上述warning。将代码修改如下,warning消失: 

.....

  case(ctchoose) 
  2'b00:
   datareg<=countingin1[7:0];  //00时将最低8位送出去
  2'b01:
   datareg<=countingin1[15:8]; //01时将次低8位送出去
  2'b10:
   datareg<=countingin2[7:0];//10时将再次低8位送出去
  2'b11:
   datareg<=countingin2[15:8];//11时将最高8位送出去
  endcase
......

    结论:编程时要注意二进制和十进制表示法的区别。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有