搜索
bottom↓
回复: 2

一个按键,LED显示的程序问题,高手帮忙看看

[复制链接]

出0入0汤圆

发表于 2010-12-19 16:14:01 | 显示全部楼层 |阅读模式
`timescale 1ns/1ns


module key( clk ,rst, key,led);
  input clk;
  input rst;

  input key;
  output led;
  
  
  wire hhreg;
  wire llreg;
  
  keyscan u1 (
  .clk(clk),
  .rst(rst),
  .key1(key),
  .hhreg(hhreg),
  .llreg(llreg)
  
  );

keyout u2 (
  .clk(clk),
  .rst(rst),
  .hhreg(hhreg),
  .llreg(llreg),
  .led(led)
  );
  
endmodule   




        
module keyscan ( clk ,rst,key1 ,hhreg,llreg);
      
input   clk;
input   rst;
input   key1;
//output  led;
output  hhreg;
output  llreg;


parameter t1ms=16'd19_999;     
      

reg [15:0] count;


reg h2hreg;
reg h2lreg;
reg l2hreg;
reg l2lreg;
reg isen;

  always @(posedge clk or negedge rst )
   
      if(!rst)
       begin
          isen <=1'b0;
          count<=16'd0;
       end
      else if(count==t1ms)
        begin
          isen <=1'b1;
        end
      else
        begin
          count<=count +1'b1;
        end
  

always @(posedge clk or negedge rst )
        
     if(!rst)
       begin
         h2hreg <=1'b1;
         h2lreg <=1'b1;
         l2hreg <=1'b0;
         l2lreg <=1'b0;
        
       end
     else
       begin
         h2hreg <=key1;
         h2lreg <=h2hreg;
         l2hreg <=key1;
         l2lreg <=l2hreg;
       end
   
   
  assign   hhreg = isen? (h2hreg&!h2lreg):1'b0;
  assign   llreg = isen? (!l2hreg&l2lreg):1'b0;

endmodule  
   
//*********************************************************   




   
module keyout ( clk ,rst ,hhreg,llreg,led);
      
input   clk;
input   rst;


input  hhreg;
input  llreg;
output  led;

parameter t20ms=20'hfffff;     
      

reg [19:0] count; //20ms
reg led1;
//reg led1;
reg [1:0] i;


  always @(posedge clk or negedge rst )
   
      if(!rst)
       begin
         
          count<=20'd0;
       end
      
      else
        begin
          count<=count +1'b1;
        end
      


     
  always @(posedge clk or negedge rst )
   
      if(!rst)
       begin
          i<=2'd0;
          count<=20'd0;
       end   
     else if(count==t20ms)
       begin
        case (i)
        
           2'd0:
             begin
               if(hhreg) i<=2'd1;
               else if(llreg) i<=2'd2;
             end
           2'd1:
            
                 begin
                  led1<=1'b0;
                  i<=2'd0;
                 end
           2'd2:
            
                 begin
               
                  led1<=1'b1;
                  i<=2'd0;
                  end
          endcase
        end
     
     
assign  led=led1;
  

endmodule

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-12-19 16:15:27 | 显示全部楼层
为何老显示  COUNT这个变量有问题
Error (10028): Can't resolve multiple constant drivers for net "count[19]" at key.v(137)
Error (10029): Constant driver at key.v(143)
Error (10028): Can't resolve multiple constant drivers for net "count[18]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[17]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[16]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[15]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[14]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[13]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[12]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[11]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[10]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[9]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[8]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[7]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[6]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[5]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[4]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[3]" at key.v(137)
Error (10028): Can't resolve multiple constant drivers for net "count[2]" at key.v(137)
Error: Can't elaborate user hierarchy "keyout:u2"

出0入0汤圆

 楼主| 发表于 2010-12-19 16:24:53 | 显示全部楼层
解决了 把最后一个count<=20'd0; 去掉就可以了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 15:28

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

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