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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4095|回复: 13

[求助] Verilog编写代码问题,求教!!!

[复制链接]
发表于 2015-12-1 10:51:20 | 显示全部楼层 |阅读模式

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

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

x
一个方波信号如图所示,在高电平期间计数
发表于 2015-12-1 11:17:11 | 显示全部楼层
图挂了。。。。。
 楼主| 发表于 2015-12-1 11:20:00 | 显示全部楼层
图就是一个方波,只有一个高电平,其他都是低电平
 楼主| 发表于 2015-12-1 11:23:46 | 显示全部楼层




  1. reg H2L_F1;
  2.          reg H2L_F2;
  3.          reg L2H_F1;
  4.          reg L2H_F2;
  5.        
  6.         always @ ( posedge clk or negedge rst )
  7.           if( !rst)
  8.        begin
  9.             H2L_F1 <= 1'b1;
  10.             H2L_F2 <= 1'b1;
  11.             L2H_F1 <= 1'b0;
  12.             L2H_F2 <= 1'b0;
  13.             end
  14.          else
  15.             begin
  16.             H2L_F1 <= enable;  
  17.             H2L_F2 <= H2L_F1;
  18.        L2H_F1 <= enable;
  19.        L2H_F2 <= L2H_F1;
  20.          end
  21.          assign H2L_Sig = H2L_F2 & !H2L_F1;
  22.          assign L2H_Sig =!L2H_F2 & L2H_F1;
  23.        
  24.         /////////////////
  25.        
  26.         reg [7:0]  count1;
  27.         reg [7:0]  mycount1;
  28.         always @ ( posedge clk or negedge rst )
  29.         begin
  30.            if(!rst)
  31.                  count1<=8'd0;
  32.                 else
  33.                           begin
  34.                                                  if(L2H_Sig)
  35.                                  
  36.                                                   count1<=count1+1'b1;
  37.                                                          
  38.                                                  else if(H2L_Sig)         
  39.                                      mycount1<= count1;
  40.                 end                                                                       
  41.    end


复制代码


这是我写得,最后mycount1赋值那边好像错了,帮我看一下
发表于 2015-12-1 15:25:31 | 显示全部楼层
L2H_Sig 只有一个周期宽度,计数器+1之后就停了
 楼主| 发表于 2015-12-1 15:48:20 | 显示全部楼层
回复 5# liyafeng007


   那应该怎么写呢
发表于 2015-12-2 09:53:51 | 显示全部楼层
如果只是高电平期间累加计数的话,就没必要检测上升沿。
if(enable)
发表于 2015-12-2 09:55:12 | 显示全部楼层
if(enable)   count1 <= count1+1;
发表于 2015-12-2 09:56:16 | 显示全部楼层
回复 6# 强力mamada


    你可以改成L2H_Sig作为开始计时的使能信号,用H2L_Sig作为计时结束的使能信号,
always@(posedge clk or negedge rst)
if(!rst)
count1<=0;
else if(L2H_Sig)
      count1<=0;
else if(enable)
      count1<=count1+1;
else if(H2L_Sig)
     mycount<=count;
发表于 2015-12-2 10:23:07 | 显示全部楼层
楼主是在做按键的去抖设计吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-28 22:44 , Processed in 0.024550 second(s), 9 queries , Gzip On, MemCached On.

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