时钟方案——硬件架构的艺术笔记[3]

1.内部时钟

  除了系统时钟,在设计的时候有时候会需要自己产生一个时钟。内部时钟只是用组合逻辑会产生毛刺,在同步模式的时候并不会有任何的影响,时钟的边缘捕获是一致的,但对于异步逻辑来说这是不一定能够过滤掉的,可能会影响set up time 和hold time。即使时序上可能是OK的,但是寄存器可能会输出奇怪的值。

  解决这种办法最简单的法子就是加一个同步。如下图所示,把寄存器的输出作为真正时钟信号。可以在时钟产生的数据之后打一拍来改善这个行为,但其实我这边有个疑问,我觉得如果刚好打一拍的时候,采样到了毛刺出现的时候,这个错误的状态也会被传递下去的。

书中提到了:产生内部时钟的组合逻辑会产生延迟。有时候,时钟线上的延迟会导致时钟的偏移比两个数据之间的数据延迟更长,会违背时序要求。但我觉得之后会有后端的人帮忙修时序,这些简单的使用组合逻辑作为时钟产生的第一级是可以接收的。

 2.多路时钟

在实际应用中,可能会需要产生多个频率标准的通信应用常常会使用多个时钟,因此时钟多路操作是需要的。

但需要保证:1.初始化配置之后,时钟多路逻辑就不在改变

                       2.时钟切换时寄存器时钟处于复位状态

                        3.时钟切换产生的短暂错误响应没有错误影响(我觉得就是切换会有毛刺)

 3.门控时钟

门控时钟是低功耗设计之中的系统级里面很常用的手段,其实就是为了减少不需要的时钟的翻转。

在传统的同步时钟域中,主要功耗包括三个部分:

1.时钟沿变化的组合逻辑产生的功耗

2.有触发器产生的功耗

3设计中时钟树产生的功耗

一般来说,时钟树产生的功耗占总功耗的50%,因此最好在根部产生和关闭时间来让时钟功能变化的更彻底。

 3.1 无锁存器的门控时钟电路

不含锁存器的门控时钟,通过与门或者或门来实现(其实看使用哪个边沿,与门就是上升沿)

 这种情况会导致时钟的一个周期没有把使能信号保持一个常量。但如果不满足这个情况,会导致时钟产生错误,影响具体功能的实现。

 3.2 基于锁存器的门控时钟

其实就是加入了一个电平敏感的锁存器,来让时钟使能信号维持一个完整的时钟的周期。

 3.3 门控时钟

其实就是减少大量门翻转的作用。例如:解码器。比如说解码机制中,地址信号会在所有目标模块的解码器中变化。解码器输入断的切断会导致太多的门进行翻转。我们可以用使能或者选择信号来阻止切换行为的传播

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值