江湖人称纪博大 2021-09-03 16:19 采纳率: 87.5%
浏览 259
已结题

如何用verilog语言实现对一段信号脉冲个数和脉冲宽度的统计呢?

初步学习verilog,目前需要做的工作是 采集到一段信号。想要统计这段信号的脉冲个数,以及脉冲宽度的分布情况。
初步想法是通过对该段信号的上升沿检测,检测到上升沿就计数+1,可以最终得到脉冲个数。
然后检测下降沿,通过下降沿的时间减去上升沿的时间可以得到脉冲宽度,并且也存放起来。
目前只是单纯的实现了上升沿和下降沿的检测。

module edge_detect(
    input clk,
    input rst,
    input sig,
    output pos_edge,
    output neg_edge
);

reg sig_r1,sig_r2; //2级寄存器
reg cnt;           //对上升沿进行计数
always @(posedge clk) begin   //复位
    if (rst) begin
        sig_r1 <= 1'b0;
        sig_r2 <= 1'b0;
        end
        else begin
            sig_r1 <= sig;
            sig_r2 <= sig_r1;
        end
end

  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 10月13日
      • 已采纳回答 10月5日
      • 创建了问题 9月3日

      悬赏问题

      • ¥15 SQL 表中 考勤记录的组合查询
      • ¥15 Power pivot无法刷新数据
      • ¥15 刚入职被要求写这种文档,应该如何下手
      • ¥15 最优经济尺寸设计问题
      • ¥15 从多元正态分布中生成3维样本
      • ¥15 GEO下载数据的处理报错 :函数‘Meta’标签‘"data.frame"’找不到继承方法,如何解决?
      • ¥15 android object box 一个实体多个表怎么写
      • ¥15 temux 启用docker 服务失败
      • ¥15 Flask 使用celery发送邮件出现‘目标计算机积极拒绝‘
      • ¥15 超时跳出方法代码的返回值问题