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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8444|回复: 16

[求助] 用Verilog如何实现上升沿开始计数,下降沿停止计数

[复制链接]
发表于 2015-5-5 19:43:40 | 显示全部楼层 |阅读模式

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

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

x
如题,要设计的是简易的测脉冲的脉宽和重复时间,测量的是自己生成的脉冲波,上升沿开始计数下降沿停止计数就是测脉宽,上升沿开始计数下个上升沿停止计数就是测脉冲重复时间,应该如何设计啊?
发表于 2015-5-6 08:54:02 | 显示全部楼层
用边沿检测,posedge(上升沿),negedge(下降沿)
发表于 2015-5-6 09:13:12 | 显示全部楼层
你需要一個更高頻且穩定的sampling clock做偵測上升緣及下降緣的偵測及計算時間。
发表于 2015-5-6 16:42:30 | 显示全部楼层
always@(posedge clk or negedge rst) beign
        if(~rstn) begin
             delay[1:0] <= 2'd0;
        end
        else begin
              delay[1:0] <= {delay[0],pluse};
        end
end

wire pluse_start = (~delay[1])&     delay[0]  ;
wire pluse_end  = (   delay[1])& (~delay[0]) ;
然后使用pluse_start和pluse_end作为脉冲pluse的开始和停止计数标志。
发表于 2015-5-6 17:29:58 | 显示全部楼层
 楼主| 发表于 2015-5-6 17:32:41 | 显示全部楼层
上升沿触发 下降沿停止方法比较多,上升沿触发,下个上升沿截止该怎么弄?
 楼主| 发表于 2015-5-6 17:33:52 | 显示全部楼层
根据另一个帖子,liqz大神写的程序改的,
module Pulse_Width(
        clk,
        rst_n,
        signal
        pwcounter
    );
input clk, rst_n, signal;
output signed [9:0] pwcounter;
reg [9:0] pwcounter;
reg signal_reg;
reg state;
always @ (posedge clk )
begin
if(!rst_n)
    begin
        pwcounter<=10'd0;
        signal_reg<=1'd0;
        state<=1'd0;
    end
else
begin
    signal_reg<=signal;
    case(state)
          1'd0:
          begin
                 if(signal&(~signal_reg))
                 begin
                        state<=1'd1;
                        pwcounter<=pwcounter+1'd1;
                 end
           end
           1'd1:
           begin
                  if(signal_reg&(~signal))
                  begin
                          state<=1'd0;
                          pwcounter <=10'd0;
                  end
                  else
                        counter<=counter+1'd1;
          end
     endcase
end
end
endmodule
求教其中state的作用是?
发表于 2015-5-6 17:57:59 | 显示全部楼层
如果clk跟signal是不同步的,要注意metastable的問題。
 楼主| 发表于 2015-5-6 20:10:11 | 显示全部楼层
回复 4# bpm


    请问上升沿触发,下个上升沿截止该怎么弄?
 楼主| 发表于 2015-5-6 20:18:41 | 显示全部楼层
回复 8# jasper0608
脉宽仿真.png

    按7楼那么写仿真如上图,是不同步的问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 19:42 , Processed in 0.028585 second(s), 13 queries , Gzip On, Redis On.

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