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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: Myra1993

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

[复制链接]
发表于 2015-5-7 09:33:07 | 显示全部楼层
回复 10# Myra1993


數位仿真看不出來metastable的問題。
從waveform看來,你是用clock負緣計數counter嗎?
如果是,看起只是counter的每個bit的transition time不同,你有掛SDF去仿真嗎?
发表于 2015-5-7 13:55:20 | 显示全部楼层
回复 5# 刘福奇


   感谢!
发表于 2015-5-7 14:00:52 | 显示全部楼层
回复 9# Myra1993

    所谓的7楼代码,和我的是一个原理,你应该好好看看我的代码,了解了这段代码的核心,就不会纠结哪里开始哪里结束了。
 楼主| 发表于 2015-5-7 15:42:17 | 显示全部楼层
回复 13# bpm


    看了你的代码,上升沿和下降沿都可以表示成变量,就可以直接控制起始了,但是测周期的话,起始截止都是上升沿,是不是要引入新变量?初学者可能表述不清,不好意思哈~以下是我根据一段程序改的测周期,编译的时候提示cnt有错误,(Error (10133): Verilog HDL Expression error at Period.v(26): illegal part select of unpacked array "cnt"),能麻烦您帮忙看下么?


module Period(
    clk,
    rst_n,
    signal,
    percounter
    );
input clk, rst_n, signal;
output signed [9:0] percounter;
reg  [9:0] percounter;
reg  signal_reg;
reg  cnt[9:0];
wire signal_pos;
always @ ( posedge clk or negedge rst_n ) begin
     if ( !rst_n )  begin
         signal_reg <= 1'b0;
     end
     else begin
         signal_reg <= signal;
     end
end

assign signal_pos = signal & (~signal_reg);

always @ ( posedge clk or negedge rst_n ) begin
     if ( !rst_n ) begin
         cnt[9:0] <= 10'd0;
     end
     else if ( signal_pos == 1'b1 ) begin
         cnt[9:0] <= 10'd0;
     end
     else begin
         cnt[9:0] <= cnt[9:0] + 10'd1;
     end
end

always @ ( posedge clk or negedge rst_n ) begin
     if ( !rst_n ) begin
         percounter[9:0] <= 10'd0;
     end
     else if ( signal_pos == 1'b1 ) begin
         percounter[9:0] <= cnt[9:0];
     end
     else begin
  
     end
end

endmodule
发表于 2015-5-7 16:51:26 | 显示全部楼层
将时钟取反,阔步阔以?
发表于 2015-5-7 21:33:52 | 显示全部楼层
测周期的话,不就是两次检测到上升沿的时间段吗?你设一个变量记录一下不就很简单的算出来了吗。
发表于 2021-10-8 12:00:26 | 显示全部楼层


Myra1993 发表于 2015-5-6 17:33
根据另一个帖子,liqz大神写的程序改的,
module Pulse_Width(
        clk,


计数还是不ok,只能到1,是什么原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-24 00:20 , Processed in 0.023211 second(s), 7 queries , Gzip On, Redis On.

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