H.H_Tang的个人空间 https://blog.eetop.cn/1706554 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

基于D触发器谈一下对数字电路中时序的一些理解(针对单个触发器的时序分析) ...

热度 13已有 7923 次阅读| 2019-11-11 19:12 |个人分类:数字设计|系统分类:芯片设计| verilog, 数字设计, 时序分析

时序知识

图1. D触发器symbol

为了便于理解给出了D触发器的symbol,时序图和比较简单的静态CMOS D触发器原理图

时序逻辑电路中重要的几个参数:

  • t-su : 建立时间,D的数据需要在建立时间前到达

  • t-hold: 保持时间,D在该段时间应保持稳定

  • Tc-q : 时钟到输出的延时,时钟到CLK→Q路径延迟

    结合CMOS结构可以对上述三个时间有更好的理解:

  • 图2. D触发器简单时序图

  • 图3. D触发器简单的CMOS结构-时钟上升沿敏感

  • 根据原理图对三个时间进一步理解:该电路工作原理,CLK = 0,T1开,数据经D传输至两个反相器进行缓存,等到CLK=1;T2开,数据经过反相器 I3,I4后输出至 Q。所以上升沿敏感其实传输的数据是CLK= 0 时的数据。因此需要被传输的数据应该在上升沿来到前稳定,即建立时间。保持时间需要从传输门进行考虑,CMOS结构并不是突变,MOS在输入变化时有一段时间不稳定,为了I1,I2处数据发生突变,所以数据需要稳定一段时间。Tc-q很好理解,路劲延迟。

    结合上述分析,进行一个简单的实验。

    实验内容,4位二进制计数器,计数器计数到10将valid拉高一个时钟,实验中有两个valid,一个valid_w,一个valid_r,具体不同见源代码:

    module timing_test(clk,rst,valid_w,valid_r);
    input clk;
    input rst;
    output valid_w;
    output reg valid_r;

    reg [3:0] cnt;
    assign valid_w = cnt == 4'd10 ? 1'b1: 1'b0;
    always @(posedge clk or posedge rst)
      if(rst)
          valid_r <= 1'b0;
      else if(cnt == 4'd10)
          valid_r <= 1'b1;
      else if(cnt == 4'd11)
          valid_r <= 1'b0;
      else
          valid_r <= 1'b0;
    always @(posedge clk or posedge rst)
      if(rst)
          cnt <= 4'd0;
      else
          cnt <= cnt + 1'b1;        
    endmodule

    仿真结果如图4:

  • 图4 实验仿真结果

  • 可以看到valid_w,是在cnt = 10时拉高,而valid_r是在cnt = 11时拉高,如何理解呢?结合图5的RTL图可以做一个很好的解释。

  • 图5 实验RTL图当时钟上升沿到的时候 

  • 计数加一需要在建立时间时才能被触发器采样,同时需要一段延迟才能数稳定。考虑当前时钟cnt=9;当下个时钟到来时,cnt触发器和valid_r触发器同时对clk上升沿敏感,D也同时采样,经过前面对时序的分析也可以知道,D采的是上升沿到来前的值所以valid_r采到的是cnt=9,在RTL_ROM中的比对结果,所以需要下个时钟才能获得cnt=10,在RTL_ROM中的比对结果。当然上升沿这个时刻valid_w也是0,但经过一小段传输延迟后valid_w变为0了,这里仿真结果在逻辑上是正确的,在大自然下应该会有一定的延迟。

3

点赞

刚表态过的朋友 (3 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 3

    好友
  • 4

    获赞
  • 2

    评论
  • 1340

    访问数
关闭

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


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

GMT+8, 2024-12-26 16:27 , Processed in 0.027534 second(s), 17 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部