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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] verilog里的time step是怎样的概念?

[复制链接]
发表于 2013-1-25 14:00:53 | 显示全部楼层
回复 2# fl_5588

你好啊。我也同意你对于time step的解释。但是我有一个问题想麻烦你帮我解答一下。


非阻塞赋值正是因为在time tep结束时才更新LHS,所以才导致我们用非阻塞赋值语句对变量赋值时会有延迟一个周期的现象。


但是为什么我们在写rst下降沿对信号进行复位时,不会产生延迟?
发表于 2013-1-25 21:58:24 | 显示全部楼层
回复 11# zerorenee


    应该不是指一个时钟周期。感觉time step就是在RHS的变量更新之前赋值给LHS的时间。    “非阻塞赋值正是因为在time tep结束时才更新LHS,所以才导致我们用非阻塞赋值语句对变量赋值时会有延迟一个周期的现象” 没有延迟一个周期的现象,可以仿真试一下。RHS付给LHS的值是其上一个时钟沿采样的值,跟这个不要混淆。


   “但是为什么我们在写rst下降沿对信号进行复位时,不会产生延迟?”等效于电路中寄存器复位
发表于 2013-1-25 22:30:16 | 显示全部楼层
回复 12# fl_5588

简单的测试程序貌似真的米有延迟。。。。但是麻烦看一下以下两段代码

1.
//摘自我最新在写的一个程序
always @(posedge clk or negedge rst)
    begin
        if (!rst)
            hint <= 1'b0;
        else if ((current_state == 1'b1) &&
                 (bitstream == 2‘d60))
                 hint <= 1'b1;

  else
             hint <= hint;
    end

波形图如下图1

可以看到红色矩形处的clk上升沿,已经满足了else if的条件,但是hint延迟了一个周期跳变为1

于是我写了以下简单的测试代码
2.
always @(posedge clk or negedge rst)
begin
    if (!rst)
        a <= 1'b0;
    else
        a <= 1'b1;
end


波形图如下图2

可以看到红色矩形clk的上升沿处,a的跳变没有延迟。


可以解释一下这是为什么吗?我百思不得其解。。。。
谢谢了~~~
1.png
2.png
发表于 2013-1-26 01:04:59 | 显示全部楼层
回复 13# zerorenee


    if ((current_state == 1'b1) &&
                 (bitstream == 2‘d60)) 在你标出的位置clk采样时bitstream == 0,到下一个周期才满足else if 条件。
发表于 2013-1-26 09:43:26 | 显示全部楼层
回复 14# fl_5588


不对吧 你看左边的值 bitstream是60啊
3.png
发表于 2013-1-26 19:35:26 | 显示全部楼层
回复 15# zerorenee


    。。。你说的有道理,但是遇到这种情况,那个值不能说明软件在这个时候采样就是60。一般来说它是采时钟沿前的值的。
发表于 2013-1-29 10:42:40 | 显示全部楼层
回复 16# fl_5588


   嗯 貌似也只能这么理解了
   就是因为这个现象,所以我会对下面的语句

   always @(posedge clk or negedge rst)
       if (!rst)
           a <= 1'b0;
   … …

   a能及时复位感到奇怪,if(!rst)不会采到rst下降沿前的值么... 呵呵
发表于 2013-1-29 15:46:25 | 显示全部楼层
回复 17# zerorenee


    呵呵,不会的。这么设计就理解成dff的reset就好了。如果非要说按照仿真的角度理解这样的问题我也是根据仿真经验,也没见到什么文档介绍过。估计这样的问题会在ieee的standard里有描述,自己感兴趣就多查查看看。查到了告诉我一声
发表于 2016-7-7 11:10:44 | 显示全部楼层
The step time unit is equal to the global time precision. Unlike other time units, which represent physical
units, a step cannot be used to set or modify either the precision or the time unit.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 20:40 , Processed in 0.034957 second(s), 7 queries , Gzip On, Redis On.

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