2.时钟那些事儿

部分概念引用自b站大佬rong晔资料rong晔 _ 搜索结果_哔哩哔哩_Bilibili

1.时间抖动(jitter):时钟周期在不同的周期可能加长或缩短,平均值为0,但两个时钟周期存在差值。

原因:误差在时钟发生器内部产生,与晶振、PLL内部电路有关。

解决方法:只能在设计中留有余量。

2.3.偏移(skew):时钟相位不确定。

原因:时钟源到达不同寄存器所经历路径的驱动和负载的不同,时钟边沿的位置有所差异,因此就带来了 skew。

解决方法:完成布局布线后,物理路径延时是固定的,所以在设计中考虑到时钟偏移,就可以避免偏移带来的影响。

区别:Jitter是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。Skew是由不同布线长度导致的不同路径的时钟上升沿到来的延时不同。
 

3.毛刺glitch

原因:由于信号在 FPGA 的内部走线和通过逻辑单元时造成的延迟,在多路信号变化的瞬间,组合逻辑的输出常常产生一些小的尖峰,即毛刺信号,这是由 FPGA 内部结构特性决定的。 毛刺现象在 FPGA 的设计中是不可避免的。

4.锁存器(latch)/触发器(FF)

触发方式:latch 是电平触发, register 是边沿触发, register 在同一时钟边沿触发下动作,符合同步电路的设计思想,而 latch 则属于异步电路设计,往往会导致时序分析困难,不适当的应用 latch则会大量浪费芯片资源。

一般将信号经过两级触发器就可以消除毛刺。
 

5.什么锁存器(latch)不好?
1) 锁存器对毛刺不敏感,很容易在信号上产生毛刺;
2) 而且也没有时钟信号,不容易进行静态时序分析。
正是因为这两个原因,我们在 FPGA 设计时,尽量不用锁存器
 

注意,“FPGA 中只有 LUT 和 FF 的资源,没有现成的 Latch,所以如果要用 Latch,需要更
多的资源来搭出来。 ”这个观点不完全是正确的。

 

在 Xilinx 的 FPGA 中, 6 系列之前的器件中都有 Latch; 6 系列和 7 系列的 FPGA 中,一个
Slice 中有 50%的 storage element 可以被配置为 Latch 或者 Flip-Flop,另外一半只能被配置
为 Flip-Flop。比如 7 系列 FPGA 中,一个 Slice 中有 8 个 Flip-Flop,如果被配置成了 Latch,
该 Slice 的另外 4 个 Flip-Flop 就不能用了。这样确实造成了资源的浪费。
但在在 UltraScale 的 FPGA 中,所有的 storage element 都可以被配置成 Flip-Flop 和 Latch。

6.D触发器与Latch的区别:

锁存器对电平信号敏感,在输入脉冲的电平作用下改变状态。
D触发器对时钟边沿敏感,检测到上升沿或下降沿触发瞬间改变状态

FF触发器与Latch锁存器的区别
FFLatch
只有当控制信号从高到低或从低到高(即仅对信号变化敏感)时,电路状态才会改变一旦输入信号改变,状态就会改变(当然会有一些传播延迟)。
同步异步
边缘触发,这意味着当时钟脉冲发生变化时,电路的输出发生变化(可能是时钟脉冲的正边缘或负边缘)。电平触发,这意味着电路的输出取决于启用信号的电平(1或0)。
由闩锁(FF类似于时钟闩锁)构建。FF用作寄存器。由逻辑门构建。
由时钟脉冲激发,有时钟信号线由可启动的输入信号激发,无时钟信号线

边缘敏感,即FF的内容仅在启用信号(通常为控制时钟信号)的上升或下降边缘变化。在时钟信号的上升沿或下降沿之后,FF的内容保持不变,即使输入发生变化。

电平敏感,即当锁存器的输入发生变化时,锁存器的内容立即发生变化。输出对启用信号激活脉冲的持续时间敏感,因此只能在激活脉冲期间发送或接收数据。
仅在时钟事件(例如上升沿、下降沿)时对输入进行采样。仅当启用信号开启时,才连续进行输入采样。


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值