草庐IT

【《硬件架构的艺术》读书笔记】02 时钟和复位(2)

magnolia666 2023-03-28 原文

2.4 时钟方案

2.4.1 内部产生的时钟

应尽量避免內部产生时钟。

组合逻辑产生时钟会引入毛刺,也会引起时序方面的问题。同步时序电路数据的毛刺不会引起任何问题,而毛刺出现在时钟输入端或异步输入端就会产生明显的影响。

毛刺到达时钟输入端如果数据变化,会违背建立和保持时间。即使没有违背时序要求,寄存器也可能输出意料外的值。

毛刺可能导致计数器增加额外的计数值,如图。

 

 解决方法:组合逻辑输出增加一个寄存器输出,这个寄存器可以阻止组合逻辑产生的毛刺。

 

组合逻辑时钟也会增加时钟延迟,可能导致违背时序要求。

 

图中由于时钟偏移导致违背了建立时间。(这里应该也有问题,这图上CLK往左移dlycombo不也违背建立时间了吗)

一种减少时钟偏移的方法:将产生的时钟放到SoC中高扇出且低偏移值的时钟树上。

 2.4.2 分频时钟

设计中要保证大多数时钟来自于PLL,避免异步时钟分频逻辑引起的许多问题。对主时钟分频时应使用同步计数器或状态机。

保证总是由寄存器直接产生分频时钟信号,不要使用组合逻辑避免毛刺和尖峰脉冲。

2.4.3 行波技术器

使用行波计数器对时钟进行幂为2的分频。

优点:使用的门更少。

 

 缺点:对STA和综合工具带来麻烦,应尽量避免。

功耗较高的系统中很适合使用这种计数器,可以大量降低由逻辑或SoC所引起的峰值功耗。

2.4.4 多路时钟

需要处理多个频率标准的通信应用常常使用多个时钟。

 

 使用多路时钟的前提:

 

 2.4.5 同步时钟使能和门控时钟

 

优点:减少功耗。

缺点:不是同步设计,显著增加设计时间和验证的工作量。增加时钟偏移并对毛刺敏感,所以能导致设计失败。

可以使用同步的时钟使能,用纯同步的方法关闭时钟域,但这样时钟树一直保持反转,触发器保持内部活跃,无法降低功耗。

 

 这里通过选通信号选择触发器输入,但是并没有真正意义上关闭触发器,只是使其值保持。

2.5 门控时钟方法学

同步设计风格中,功耗主要由三个部分组成

 

对时钟门控能够大幅降低触发器的功耗,门控可以在时钟数的根部、末端或者两者之间的任何位置。

时钟数几乎消耗了整个芯片功耗的50%,所以最好在根部产生或者关闭时钟。

 

 

使用图2.21的方法则会使用三个多路选择器。

2.5.1 不带锁存器的门控时钟电路

 使用与门、或门实现。为避免过早截断或产生多个时钟脉冲、应强制要求使能在时钟上升沿到下降沿一直保持常量。该限制使得基于单时钟触发器的设计中不适合使用不含锁存器的门控时钟。(因为对使能信号有较高的要求)

 

图中为过早截断的情况。

2.5.2 基于锁存器的门控时钟电路

使用锁存器就可以使门控时钟电路不需要满足上面的条件了。

使用与门控制上升沿有效的时钟,反之使用或门控制。

 

 这个电路在使能关闭时为低电平,当打开时便不会漏掉下降沿。

使用这项技术时,使能信号必须在半时钟周期内产生。(锁存器只在半个时钟周期内具有锁存功能)

 要保证设计中所有时钟能同时使能以便DFT,可以再加一个或门。

 2.5.3 门控信号

特殊部分使用门控信号提高能效。(感觉这里的意思就是减少组合逻辑的功耗)

2.5.4 重组数据路径以减少转换传播

 

 

 

 这里的意思应该是把容易产生毛刺或者会经常翻转电平的电路放在电路后级,可以减少转换传播从而降低功耗。

 

有关【《硬件架构的艺术》读书笔记】02 时钟和复位(2)的更多相关文章

  1. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. 牛客网专项练习30天Pytnon篇第02天 - 2

    1.在Python3中,下列关于数学运算结果正确的是:(B)a=10b=3print(a//b)print(a%b)print(a/b)A.3,3,3.3333...B.3,1,3.3333...C.3.3333...,3.3333...,3D.3.3333...,1,3.3333...解析:    在Python中,//表示地板除(向下取整),%表示取余,/表示除(Python2向下取整返回3)2.如下程序Python2会打印多少个数:(D)k=1000whilek>1:    print(k)k=k/2A.1000 B.10C.11D.9解析:    按照题意每次循环K/2,直到K值小于等

  4. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  5. ruby - Ruby 和 Ruby on Rails 中的三层架构 - 2

    我是一名决定学习Ruby和RubyonRails的ASP.NETMVC开发人员。我已经有所了解并在RoR上创建了一个网站。在ASP.NETMVC上开发,我一直使用三层架构:数据层、业务层和UI(或表示)层。尝试在RubyonRails应用程序中使用这种方法,我发现没有关于它的信息(或者也许我只是找不到它?)。也许有人可以建议我如何在RubyonRails上创建或使用三层架构?附言我使用ruby​​1.9.3和RubyonRails3.2.3。 最佳答案 我建议在制作RoR应用程序时遵循RubyonRails(RoR)风格。Rails

  6. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

  7. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  8. ruby-on-rails - 具有六边形架构和 DCI 模式的框架和数据库适配器 - 2

    我尝试用Ruby设计一个基于Web的应用程序。我开发了一个简单的核心应用程序,在没有框架和数据库的情况下在六边形架构中实现DCI范例。核心六边形中有小六边形和网络,数据库,日志等适配器。每个六边形都在没有数据库和框架的情况下自行运行。在这种方法中,我如何提供与数据库模型和实体类的关系作为独立于数据库的关系。我想在将来将框架从Rails更改为Sinatra或数据库。事实上,我如何在这个核心Hexagon中实现完全隔离的rails和mongodb的数据库适配器或框架适配器。有什么想法吗? 最佳答案 ROM呢?(Ruby对象映射器)。还有

  9. FPGA 之 时钟,时钟域, 以及复位系统的设计 - 2

    FPGA时钟和时钟域时钟树所谓时钟树为FPGA内部资源,分:全局时钟树,区域时钟树,IO时钟树原则上优先使用全局时钟树,在GT接口上使用IO时钟树,一般工具也会对GT时钟加以限制;时钟树使用方式正确的物理连接FPGA会由物理管脚专门用于全局时钟设置,通过查询数据手册可以在PCB设计阶段进行确认,当外部时钟接入此管脚时,工具会自动占有全局时钟树资源,当接入普通信号时不会分配时钟树资源;恰当的代码描述原语的使用,即BUFG的使用,可以将PLL的输出等内部时钟进行全局时钟资源的分配;IO时钟资源需要参考相应接口手册,以ultrascale的GTH为例,其JESD204的时钟方案针对不同的子类会由不同

  10. 计算机网络笔记:TCP三次握手和四次挥手过程 - 2

    TCP是面向连接的协议,连接的建立和释放是每一次面向连接的通信中必不可少的过程。TCP连接的管理就是使连接的建立和释放都能正常地进行。三次握手TCP连接的建立—三次握手建立TCP连接①若主机A中运行了一个客户进程,当它需要主机B的服务时,就发起TCP连接请求,并在所发送的分段中用SYN=1表示连接请求,并产生一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x。主机B收到A的连接请求报文,就完成了第一次握手。客户端发送SYN=1表示连接请求客户端发送一个随机发送序号x,如果连接成功,A将以x作为其发送序号的初始值:seq=x②主机B如果同意建立连接,则向主机A发送确认报

随机推荐