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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9308|回复: 10

[求助] 重发帖:警告:input pin(s) that do not drive logic 和No clocks defined in design

[复制链接]
发表于 2016-5-6 09:29:25 | 显示全部楼层 |阅读模式

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

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

x
Warning (12019): Can't analyze file -- file moundetector_tb.v is missing
Warning (10036): verilog hdl or VHDL warning at moundetector.v(13): object "i" assigned a value but never read
Warning (10036): Verilog HDL or VHDL warning at moundetector.v(13): object "j" assigned a value but never read
Warning (10762): Verilog HDL Case Statement warning at moundetector.v(28): can't check case statement for completeness because the case expression has too many possible states
Warning (10762): Verilog HDL Case Statement warning at moundetector.v(64): can't check case statement for completeness because the case expression has too many possible states
Warning (10240): Verilog HDL Always Construct warning at moundetector.v(15): inferring latch(es) for variable "markdown", which holds its previous value in one or more paths through the always construct
Warning (13024): Output pins are stuck at VCC or GND

Warning (13410): Pin "Counter[0]" is stuck at VCC

Warning (13410): Pin "Counter[1]" is stuck at GND

Warning (13410): Pin "Counter[2]" is stuck at GND

Warning (13410): Pin "Counter[3]" is stuck at GND

Warning (13410): Pin "Counter[4]" is stuck at GND

Warning (13410): Pin "Counter[5]" is stuck at GND

Warning (13410): Pin "Counter[6]" is stuck at GND

Warning (13410): Pin "Counter[7]" is stuck at GND
Warning (21074): Design contains 66 input pin(s) that do not drive logic

Warning (15610): No output dependent on input pin "IN_Up[0]"

Warning (15610): No output dependent on input pin "IN_Up[1]"

Warning (15610): No output dependent on input pin "IN_Up[2]"

Warning (15610): No output dependent on input pin "IN_Up[3]"

Warning (15610): No output dependent on input pin "IN_Up[4]"

Warning (15610): No output dependent on input pin "IN_Up[5]"

Warning (15610): No output dependent on input pin "IN_Up[6]"

Warning (15610): No output dependent on input pin "IN_Up[7]"

Warning (15610): No output dependent on input pin "IN_Up[8]"

Warning (15610): No output dependent on input pin "IN_Up[9]"

Warning (15610): No output dependent on input pin "IN_Up[10]"

Warning (15610): No output dependent on input pin "IN_Up[11]"

Warning (15610): No output dependent on input pin "IN_Up[12]"

Warning (15610): No output dependent on input pin "IN_Up[13]"

Warning (15610): No output dependent on input pin "IN_Up[14]"

Warning (15610): No output dependent on input pin "IN_Up[15]"

Warning (15610): No output dependent on input pin "IN_Up[16]"

Warning (15610): No output dependent on input pin "IN_Up[17]"

Warning (15610): No output dependent on input pin "IN_Up[18]"

Warning (15610): No output dependent on input pin "IN_Up[19]"

Warning (15610): No output dependent on input pin "IN_Up[20]"

Warning (15610): No output dependent on input pin "IN_Up[21]"

Warning (15610): No output dependent on input pin "IN_Up[22]"

Warning (15610): No output dependent on input pin "IN_Up[23]"

Warning (15610): No output dependent on input pin "IN_Up[24]"

Warning (15610): No output dependent on input pin "IN_Up[25]"

Warning (15610): No output dependent on input pin "IN_Up[26]"

Warning (15610): No output dependent on input pin "IN_Up[27]"

Warning (15610): No output dependent on input pin "IN_Up[28]"

Warning (15610): No output dependent on input pin "IN_Up[29]"

Warning (15610): No output dependent on input pin "IN_Up[30]"

Warning (15610): No output dependent on input pin "IN_Up[31]"

Warning (15610): No output dependent on input pin "IN_Down[0]"

Warning (15610): No output dependent on input pin "IN_Down[1]"

Warning (15610): No output dependent on input pin "IN_Down[2]"

Warning (15610): No output dependent on input pin "IN_Down[3]"

Warning (15610): No output dependent on input pin "IN_Down[4]"

Warning (15610): No output dependent on input pin "IN_Down[5]"

Warning (15610): No output dependent on input pin "IN_Down[6]"

Warning (15610): No output dependent on input pin "IN_Down[7]"

Warning (15610): No output dependent on input pin "IN_Down[8]"

Warning (15610): No output dependent on input pin "IN_Down[9]"

Warning (15610): No output dependent on input pin "IN_Down[10]"

Warning (15610): No output dependent on input pin "IN_Down[11]"

Warning (15610): No output dependent on input pin "IN_Down[12]"

Warning (15610): No output dependent on input pin "IN_Down[13]"

Warning (15610): No output dependent on input pin "IN_Down[14]"

Warning (15610): No output dependent on input pin "IN_Down[15]"

Warning (15610): No output dependent on input pin "IN_Down[16]"

Warning (15610): No output dependent on input pin "IN_Down[17]"

Warning (15610): No output dependent on input pin "IN_Down[18]"

Warning (15610): No output dependent on input pin "IN_Down[19]"

Warning (15610): No output dependent on input pin "IN_Down[20]"

Warning (15610): No output dependent on input pin "IN_Down[21]"

Warning (15610): No output dependent on input pin "IN_Down[22]"

Warning (15610): No output dependent on input pin "IN_Down[23]"

Warning (15610): No output dependent on input pin "IN_Down[24]"

Warning (15610): No output dependent on input pin "IN_Down[25]"

Warning (15610): No output dependent on input pin "IN_Down[26]"

Warning (15610): No output dependent on input pin "IN_Down[27]"

Warning (15610): No output dependent on input pin "IN_Down[28]"

Warning (15610): No output dependent on input pin "IN_Down[29]"

Warning (15610): No output dependent on input pin "IN_Down[30]"

Warning (15610): No output dependent on input pin "IN_Down[31]"

Warning (15610): No output dependent on input pin "Clk"

Warning (15610): No output dependent on input pin "Rst"
Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details
Warning (332068): No clocks defined in design.
Warning (332068): No clocks defined in design.
Warning (332068): No clocks defined in design.
Warning (332068): No clocks defined in design.

代码:




  1. module moundetector (IN_Up,IN_Down,Clk,Rst,Counter);
  2.                                        
  3.   input      Clk;
  4.   input      Rst;      
  5.   output reg [7:0] Counter;
  6.   parameter  channel=32;
  7.   parameter  s0=4'b0000,s1=4'b0001,s2=4'b0010,s3=3'b0011,s4=4'b0100,s5=4'b0101,s6=4'b0110,s7=4'b0111,
  8.              s8=4'b1000,s9=4'b1001,s10=4'b1010,s11=4'b1011,s12=4'b1100,s13=4'b1101,s14=4'b1110,s15=4'b1111;
  9.   input      [channel-1:0]IN_Up,IN_Down;
  10.   reg        Up,Down,Up_state,Down_state;
  11.   reg        [3:0]cur_state, next_state;
  12.   reg        markup=1'b0, markdown=1'b0 ;
  13.   reg        [5:0]i,j;
  14.   reg         res;
  15. always @(IN_Up or IN_Down or res )//////应该想的是  信号可以随时变化 每次变化都赋给寄存器 但是当有信号是 只把对应的变化信号持续给Up、Down
  16.   begin
  17.   if(~res)
  18.          begin
  19.                 Up=0;
  20.                 Down=0;
  21.                 markup=0;
  22.                 markdown=0;
  23.                 i=6'b100000;
  24.                 j=6'b100000;
  25.          end
  26.   else
  27.          begin
  28.         case(IN_Up)
  29.                  32'b00000000_00000000_00000000_00000001 : begin Up=IN_Up[0]; i=6'b000000;markup=1;end       
  30.                                 32'b00000000_00000000_00000000_00000010 : begin Up=IN_Up[1]; i=6'b000001;markup=1;end       
  31.                                 32'b00000000_00000000_00000000_00000100 : begin Up=IN_Up[2]; i=6'b000010;markup=1;end       
  32.                                 32'b00000000_00000000_00000000_00001000 : begin Up=IN_Up[3]; i=6'b000011;markup=1;end       
  33.                                 32'b00000000_00000000_00000000_00010000 : begin Up=IN_Up[4]; i=6'b000100;markup=1;end       
  34.                                 32'b00000000_00000000_00000000_00100000 : begin Up=IN_Up[5]; i=6'b000101;markup=1;end       
  35.                                 32'b00000000_00000000_00000000_01000000 : begin Up=IN_Up[6]; i=6'b000110;markup=1;end       
  36.                                 32'b00000000_00000000_00000000_10000000 : begin Up=IN_Up[7]; i=6'b000111;markup=1;end       
  37.                                 32'b00000000_00000000_00000001_00000000 : begin Up=IN_Up[8]; i=6'b001000;markup=1;end       
  38.                                 32'b00000000_00000000_00000010_00000000 : begin Up=IN_Up[9]; i=6'b001001;markup=1;end       
  39.                                 32'b00000000_00000000_00000100_00000000 : begin Up=IN_Up[10]; i=6'b001010;markup=1;end       
  40.                                 32'b00000000_00000000_00001000_00000000 : begin Up=IN_Up[11]; i=6'b001011;markup=1;end       
  41.                                 32'b00000000_00000000_00010000_00000000 : begin Up=IN_Up[12]; i=6'b001100;markup=1;end       
  42.                                 32'b00000000_00000000_00100000_00000000 : begin Up=IN_Up[13]; i=6'b001101;markup=1;end       
  43.                                 32'b00000000_00000000_01000000_00000000 : begin Up=IN_Up[14]; i=6'b001110;markup=1;end       
  44.                                 32'b00000000_00000000_10000000_00000000 : begin Up=IN_Up[15]; i=6'b001111;markup=1;end
  45.                                 32'b00000000_00000001_00000000_00000000 : begin Up=IN_Up[16]; i=6'b010000;markup=1;end       
  46.                                 32'b00000000_00000010_00000000_00000000 : begin Up=IN_Up[17]; i=6'b010001;markup=1;end       
  47.                                 32'b00000000_00000100_00000000_00000000 : begin Up=IN_Up[18]; i=6'b010010;markup=1;end       
  48.                                 32'b00000000_00001000_00000000_00000000 : begin Up=IN_Up[19]; i=6'b010011;markup=1;end       
  49.                                 32'b00000000_00010000_00000000_00000000 : begin Up=IN_Up[20]; i=6'b010100;markup=1;end       
  50.                                 32'b00000000_00100000_00000000_00000000 : begin Up=IN_Up[21]; i=6'b010101;markup=1;end       
  51.                                 32'b00000000_01000000_00000000_00000000 : begin Up=IN_Up[22]; i=6'b010110;markup=1;end
  52.                                 32'b00000000_10000000_00000000_00000000 : begin Up=IN_Up[23]; i=6'b010111;markup=1;end
  53.                                 32'b00000001_00000000_00000000_00000000 : begin Up=IN_Up[24]; i=6'b011000;markup=1;end       
  54.                                 32'b00000010_00000000_00000000_00000000 : begin Up=IN_Up[25]; i=6'b011001;markup=1;end       
  55.                                 32'b00000100_00000000_00000000_00000000 : begin Up=IN_Up[26]; i=6'b011010;markup=1;end       
  56.                                 32'b00001000_00000000_00000000_00000000 : begin Up=IN_Up[27]; i=6'b011011;markup=1;end       
  57.                                 32'b00010000_00000000_00000000_00000000 : begin Up=IN_Up[28]; i=6'b011100;markup=1;end       
  58.                                 32'b00100000_00000000_00000000_00000000 : begin Up=IN_Up[29]; i=6'b011101;markup=1;end       
  59.                                 32'b01000000_00000000_00000000_00000000 : begin Up=IN_Up[30]; i=6'b011110;markup=1;end       
  60.                                 32'b10000000_00000000_00000000_00000000 : begin Up=IN_Up[31]; i=6'b011111;markup=1;end
  61.                                 default  : begin Up=1'b0;i=6'b100000;markup=1'b0;end   /////将i=32设为初始状态  
  62.                    endcase
  63.                        
  64.                   case(IN_Down)
  65.                  32'b00000000_00000000_00000000_00000001 : begin Down=IN_Down[0]; i=6'b000000;markup=1;end       
  66.                                 32'b00000000_00000000_00000000_00000010 : begin Down=IN_Down[1]; i=6'b000001;markup=1;end       
  67.                                 32'b00000000_00000000_00000000_00000100 : begin Down=IN_Down[2]; i=6'b000010;markup=1;end       
  68.                                 32'b00000000_00000000_00000000_00001000 : begin Down=IN_Down[3]; i=6'b000011;markup=1;end       
  69.                                 32'b00000000_00000000_00000000_00010000 : begin Down=IN_Down[4]; i=6'b000100;markup=1;end       
  70.                                 32'b00000000_00000000_00000000_00100000 : begin Down=IN_Down[5]; i=6'b000101;markup=1;end       
  71.                                 32'b00000000_00000000_00000000_01000000 : begin Down=IN_Down[6]; i=6'b000110;markup=1;end       
  72.                                 32'b00000000_00000000_00000000_10000000 : begin Down=IN_Down[7]; i=6'b000111;markup=1;end       
  73.                                 32'b00000000_00000000_00000001_00000000 : begin Down=IN_Down[8]; i=6'b001000;markup=1;end       
  74.                                 32'b00000000_00000000_00000010_00000000 : begin Down=IN_Down[9]; i=6'b001001;markup=1;end       
  75.                                 32'b00000000_00000000_00000100_00000000 : begin Down=IN_Down[10]; i=6'b001010;markup=1;end       
  76.                                 32'b00000000_00000000_00001000_00000000 : begin Down=IN_Down[11]; i=6'b001011;markup=1;end       
  77.                                 32'b00000000_00000000_00010000_00000000 : begin Down=IN_Down[12]; i=6'b001100;markup=1;end       
  78.                                 32'b00000000_00000000_00100000_00000000 : begin Down=IN_Down[13]; i=6'b001101;markup=1;end       
  79.                                 32'b00000000_00000000_01000000_00000000 : begin Down=IN_Down[14]; i=6'b001110;markup=1;end       
  80.                                 32'b00000000_00000000_10000000_00000000 : begin Down=IN_Down[15]; i=6'b001111;markup=1;end
  81.                                 32'b00000000_00000001_00000000_00000000 : begin Down=IN_Down[16]; i=6'b010000;markup=1;end       
  82.                                 32'b00000000_00000010_00000000_00000000 : begin Down=IN_Down[17]; i=6'b010001;markup=1;end       
  83.                                 32'b00000000_00000100_00000000_00000000 : begin Down=IN_Down[18]; i=6'b010010;markup=1;end       
  84.                                 32'b00000000_00001000_00000000_00000000 : begin Down=IN_Down[19]; i=6'b010011;markup=1;end       
  85.                                 32'b00000000_00010000_00000000_00000000 : begin Down=IN_Down[20]; i=6'b010100;markup=1;end       
  86.                                 32'b00000000_00100000_00000000_00000000 : begin Down=IN_Down[21]; i=6'b010101;markup=1;end       
  87.                                 32'b00000000_01000000_00000000_00000000 : begin Down=IN_Down[22]; i=6'b010110;markup=1;end
  88.                                 32'b00000000_10000000_00000000_00000000 : begin Down=IN_Down[23]; i=6'b010111;markup=1;end
  89.                                 32'b00000001_00000000_00000000_00000000 : begin Down=IN_Down[24]; i=6'b011000;markup=1;end       
  90.                                 32'b00000010_00000000_00000000_00000000 : begin Down=IN_Down[25]; i=6'b011001;markup=1;end       
  91.                                 32'b00000100_00000000_00000000_00000000 : begin Down=IN_Down[26]; i=6'b011010;markup=1;end       
  92.                                 32'b00001000_00000000_00000000_00000000 : begin Down=IN_Down[27]; i=6'b011011;markup=1;end       
  93.                                 32'b00010000_00000000_00000000_00000000 : begin Down=IN_Down[28]; i=6'b011100;markup=1;end       
  94.                                 32'b00100000_00000000_00000000_00000000 : begin Down=IN_Down[29]; i=6'b011101;markup=1;end       
  95.                                 32'b01000000_00000000_00000000_00000000 : begin Down=IN_Down[30]; i=6'b011110;markup=1;end       
  96.                                 32'b10000000_00000000_00000000_00000000 : begin Down=IN_Down[31]; i=6'b011111;markup=1;end
  97.                                 default: begin Down=1'b0;j=6'b100000;markdown=0; end   /////
  98.                          endcase
  99.          end         
  100. end

  101. always @(posedge Clk or negedge Rst)//////状态变化 ,为时序逻辑
  102. begin
  103.   if(~Rst)
  104.           begin
  105.             cur_state<=s0;//////初始状态
  106.                  next_state<=s0;
  107.                  Up_state<=0;
  108.                  Down_state<=0;
  109.                  Counter<=8'b0000_0000;
  110.      end   
  111.   else
  112.    begin /////////////////应该限制为当某一信号时 进行选择 操作   否则  就是已选择过正在处理  if  然后怎么样 而不是当来一个时钟下降沿就要进行一次寻找 操作
  113.           Up_state<=Up;
  114.           Down_state<=Down;
  115.           cur_state<=next_state;
  116.           
  117.           case(cur_state)
  118.                          s0 : begin   //////继续等待或进入下一状态  ,可能  上板先到 也可能下板先到
  119.                                  if({markup,Up_state,markdown,Down_state}==4'b1111)//////表明处理后的信号同时到达为μ 子 计数器加1  并且系统复位
  120.                                                 begin
  121.                                                         Counter<=Counter+8'b0000_0001;
  122.                                                         res<=0;
  123.        
  124.                                                 end
  125.                                         else if({markup,Up_state,markdown,Down_state}==4'b1100)/////上板比下板先到
  126.                                                 begin
  127.                                                         next_state<=s1;
  128.                                                 end
  129.                                         else if({markup,Up_state,markdown,Down_state}==4'b0011)/////下板比上板先到
  130.                                                 begin
  131.                                                         next_state<=s5;                                       
  132.                                                 end
  133.                                         else
  134.                                                 begin /////表明仍为等待状态
  135.                                                         next_state<=s0;
  136.                                                 end
  137.                           end
  138.                         s1:begin
  139.                                 if({markup,Up_state,markdown,Down_state}==4'b1111)
  140.                                         begin
  141.                                                 Counter<=Counter+8'b0000_0001;
  142.                                                 res<=0;

  143.                                         end
  144.                                  else
  145.                                          begin
  146.                                                 next_state<=s2;
  147.                                          end
  148.                         end
  149.                    s2:begin
  150.                                 if({markup,Up_state,markdown,Down_state}==4'b1111)
  151.                                         begin
  152.                                                 Counter<=Counter+8'b0000_0001;
  153.                                                 res<=0;
  154.                                         end
  155.                                 else
  156.                                         begin
  157.                                                 next_state<=s3;
  158.                                         end
  159.                         end
  160.                   s3: begin
  161.                                 if({markup,Up_state,markdown,Down_state}==4'b1111)
  162.                                         begin
  163.                                                 Counter<=Counter+8'b0000_0001;
  164.                                                 res<=0;

  165.                                         end
  166.                                 else
  167.                                         begin
  168.                                                 next_state<=s4;
  169.                                         end
  170.                          end
  171.                  s4:begin
  172.                                  if({markup,Up_state,markdown,Down_state}==4'b1111)
  173.                                         begin
  174.                                                 Counter<=Counter+8'b0000_0001;
  175.                                                 res<=0;
  176.                                         end
  177.                                 else
  178.                                         begin  //////大于20ns时  复位
  179.                                                 next_state<=s0;
  180.                                                 res<=0;

  181.                                         end
  182.                         end
  183.                 s5:begin//////下板先到
  184.                                 if({markup,Up_state,markdown,Down_state}==4'b1111)
  185.                                         begin
  186.                                                 Counter<=Counter+8'b0000_0001;
  187.                                                 res<=0;

  188.                                         end
  189.                                 else
  190.                                         begin
  191.                                                 next_state<=s6;
  192.                                         end
  193.                         end
  194.                 s6:begin
  195.                                 if({markup,Up_state,markdown,Down_state}==4'b1111)
  196.                                         begin
  197.                                                 Counter<=Counter+8'b0000_0001;
  198.                                                 res<=0;

  199.                                         end
  200.                                 else/////下板比上板早到超过10ns
  201.                                         begin       
  202.                                                 res<=0;

  203.                                         end
  204.                         end
  205.                         default:begin
  206.                                                 res<=0;

  207.                                           end
  208.                   endcase
  209.     end  
  210. end       

  211. endmodule



复制代码
发表于 2016-5-6 10:16:29 | 显示全部楼层
几点意见:
1. reg res 为什么没有异步复位值,这样会导致X为initial value.
2. reg markup=1'b0, markdown=1'b0 ; 寄存器不能如此赋值
3. s3=3'b0011 明明4 个bit, 怎么是3‘b.
 楼主| 发表于 2016-5-6 12:45:10 | 显示全部楼层
回复 2# yaya126


   感谢 回答  第二个问题后来改了,第三个问题是写错了。第一个问题 res  是真的没考虑到。那个Counter[] 都接GND 和 output 与 IN_Down ,IN_Up 无关 怎么解决?
发表于 2016-5-6 13:14:02 | 显示全部楼层
回复 3# analog大魔头
你放了SDC吗,里面有定义CLOCK没。
 楼主| 发表于 2016-5-6 13:40:48 | 显示全部楼层
回复 4# yaya126


   并没有SDC,这个还需要SDC?



  1. module moundetector1 (IN_Up,IN_Down,Clk,Rst,Counter);
  2.                                        
  3.   input      Clk;


复制代码

这个不是吗?
发表于 2016-5-6 15:26:29 | 显示全部楼层
回复 5# analog大魔头
你这是什么工具报的warning?
 楼主| 发表于 2016-5-6 16:25:27 | 显示全部楼层
回复 6# yaya126


   quartus ii  报的错。听师兄将那个两个case出好像也有错误?但是不知道怎么解决
发表于 2016-5-6 16:38:06 | 显示全部楼层
加SDC,定义时钟等再试试
 楼主| 发表于 2016-5-8 11:53:42 | 显示全部楼层
回复 8# yaya126


谢谢啦。 后来问了一下师兄他说要从新写,case 语句并没有包含所有情况。
发表于 2016-5-8 13:25:01 | 显示全部楼层
建議verilog code寫好先跑仿真.
不要用Quartus tools來測試verilog syntax .
這樣即浪費時間,且不能確認Code的完整性.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-11 18:13 , Processed in 0.041133 second(s), 8 queries , Gzip On, Redis On.

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