ASIC设计学习笔记——使用DC工具自动添加门控时钟

这篇具有很好参考价值的文章主要介绍了ASIC设计学习笔记——使用DC工具自动添加门控时钟。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

门控时钟是降低数字电路功耗的一个重要手段,在ASIC设计中,设计工具都可以根据使用者的设置自动的完成门控时钟的添加。本文简单描述了门控时钟的概念,并给出了使用DC进行门控时钟添加的操作说明,是初学ASIC设计的学习笔记分享。


1. 门控时钟简介

数字电路的工作动态功耗主要是由于寄存器翻转带来的,为了降低芯片内部功耗,门控时钟的方案应用而生。作为低功耗设计的一种方法,门控时钟是指在数据无效时将寄存器的时钟关闭,以此来降低动态功耗。

由于门控时钟会在时钟路径上增加逻辑,使用门控时钟会影响时序分析。

2. 门控时钟的实现方式

2.1 逻辑门控

ASIC设计学习笔记——使用DC工具自动添加门控时钟

2.2 锁存门控

逻辑门控不可避免会由于EN信号的不稳定导致时钟出现毛刺,为了解决这个问题,可以考虑将EN使用CLK进行锁存,让EN只有在CLK为低的时候锁存,为高的时候保持不变,这就是锁存门控时钟。

2.3 寄存门控

锁存门控仍然存在如下问题:

  • 如果在电路中锁存器与与门相隔很远,到达锁存器的时钟与到达与门的时钟有较大的延迟差别,则仍会出现毛刺;
  • 如果在电路中,时钟使能信号距离锁存器很近,可能会不满足锁存器的建立时间,会造成锁存器输出出现亚稳态。
    具体分析可以参见后附参考文档。
    为了解决锁存门控的问题,可以采用寄存门控,即将锁存器改为寄存器,使用CLK对EN信号进行寄存操作,也就是使用CLK的沿触发而不是电平触发来控制EN信号。

2.4 门控时钟结构的选择

在实际的ASIC设计中,一般采用的是集成门控,也就是说是由厂家工艺库中提供的标准单元。一般该标准单元是锁存门控形式,这是由于在厂家的设计当中,线延时是可控和不变的,而且可以通过挑选锁存器和增加延时,总是能满足锁存器的建立时间,这样通过工艺厂预先把门控时钟做出标准单元,可以解决锁存门控电路的问题,同时也避免采用面积更大的寄存门控结构。

3. 使用DC工具添加门控时钟

实际ASIC设计中,门控时钟不需要开发者自己写代码实现,完全可以通过对综合工具进行相应配置,让工具完成对电路添加合适的门控时钟。

3.1 门控时钟的自动添加

门控时钟的使能信号是在其所控制的寄存器的输入输出不变的情况下关闭,因此可以由工具进行这样的判断,并自动添加时钟的门控电路,换言之,可以将对输入信号的enable控制改变为对时钟的控制。具体的,考虑如下一段代码:

always@ {posedge clk)
    if(valid) begin
        dout <= din;
    end
end

没有加入门控时钟时,该段代码综合出来的电路为:
ASIC设计学习笔记——使用DC工具自动添加门控时钟
加上门控时钟后,该段代码综合出来的电路为:
ASIC设计学习笔记——使用DC工具自动添加门控时钟

由上面的图可以看出,插入门控时钟单元后,原有电路中的MUX就不需要了,如果数据位宽是多bit的,插入clock_gating后,电路面积可能反而会减少;但如果数据是单bit信号,那么节省的功耗就比较少。

因此,工具可以根据位宽来决定是否增加门控时钟。如果位宽很小,那么插入的clock_gating面积比原来的MUX有可能大很多,但节省的功耗又很少,性价比不高;只有当位宽超过了一定的bit数后,才有必要插入clock_gating。这个门限在DC综合时可以由-minimum_bitwidth进行设置。

3.2 使用DC添加门控时钟

DC中添加门控时钟有两种方式:

  • 使用insert_clock_gating命令
  • 在compile_ultra命令中添加-gate_clock开关

不管使用哪种方式,都首先需要通过set_clock_gating_style命令来配置相应的门控时钟参数。

3.3 使用set_clock_gating_style命令的配置

在dc_shell中输入man set_clock_gating_style可以查看具体的配置说明,这里列出其中几个主要的配置:

  • -global:可以使门控时钟穿越层次结构。如果不用选项“-global",在每个模块里都会产生一个门控时钟单元;
  • -minimum_bitwidth:用于设置进行时钟门控的寄存器阵列的最小宽度。对于宽度小于该设置的寄存器阵列,不进行时钟门控;然而当电路由有公共使能时,会对电路进行分解进行集体门控;
    -max_fanout:设置一个门控单元所驱动的最大负载数目,定义CG单元最大扇出的一个目的是减少CG后面的时钟延迟,门控时钟单元的扇出越大,它到达寄存器的延迟越长;此外,还有用来约束重新平衡;
  • -num_stages:用于设置一个多级门控的级数。在有些设计中,顶层的门控信号会分解成不同的子门控信号。在缺省情况下,仅对跟寄存器阵列相连的门控制信号生成门控逻辑;
  • -sequential_cell,该选项设置采用何种门控时钟风格:
    • -sequential_cell latch:基于锁存器的离散门控单元,该配置为默认值;
    • -sequential_cell none:采用不适用锁存器的门控单元;
  • -positive_edg_logic:简写为-positive或-pos,设置在RTL代码中用上升沿锁存的寄存器(也就是上升沿沿触发的寄存器)采用何种门控逻辑,如-pos “or”表示对于上升沿触发的寄存器,采用或门逻辑进行门控,-pos "integrated"表示对于上升沿触发的寄存器采用集成门控单元进行门控;
  • -negative_edg_logic:简写为-negative或-neg,设置在RTL代码中用下降沿锁存的寄存器(也就是下降沿触发的寄存器)采用何种门控逻辑;
  • -control_point和-control_signal:这两个开关和DFT有关,用于设置该门控单元在DFT时是否可控,DFT控制信号是scan-enable还是test-mode,以及DFT控制信号与EN信号的组合逻辑是放在门逻辑中的锁存器之前还是之后。通常,将DFT控制信号与EN信号进行或操作,这样在DFT时,可以控制该门控逻辑;
  • -observation_point:该开关和DFT有关,用于设置是否要插入观测逻辑,以便在DFT时能看到门控逻辑内部的信号;
    -setup:设置建立时间约束;
    -hold:设置保持时间约束;
    -observation_logic_depth:设置观察电路中异或门的数目。

通常的设置参数如下:文章来源地址https://www.toymoban.com/news/detail-501152.html

set_clock_gating_style "integrated" -max_fanout 30 -minimum_bitwidth 4
insert_clock_gating -global
propagate_constraints -gate_clock

参考文献

  • 芯片设计进阶之路——门控时钟,https://zhuanlan.zhihu.com/p/139363948
  • Verilog设计(一):时钟门控,https://blog.csdn.net/qq_26652069/article/details/95458771
  • 【转载】门控时钟的一些基本概念,https://blog.csdn.net/dinsh3100/article/details/124360952

到了这里,关于ASIC设计学习笔记——使用DC工具自动添加门控时钟的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理ASIC设计方法 笔记18 轮廓跟踪算法的硬件加速方案

    P129 轮廓跟踪算法的硬件加速方案 如果图像中某区域存在相邻像素之间仅有对角连接的部位,则对包围该区域的像素进行跟踪时,在对角连接部位,轮廓跟踪方向可能发生转移,跨越目标区域,最终生成断裂链表或者伪孤立点链表。伪孤立点是指与相邻像素仅存在对角连通的

    2024年04月28日
    浏览(43)
  • DC/DC开关电源学习笔记(一)开关电源技术概述

    开关模式电源(Switch Mode Power Supply,简称SMPS),又称交换式电源、开关变换器,是一种高频化电能转换装置,是电源供应器的一种。其功能是将一个位准的电压,透过不同形式的架构转换为用户端所需求的电压或电流。开关电源的输入多半是交流电源(例如市电)或是直流电

    2024年02月11日
    浏览(33)
  • DC/DC开关电源学习笔记(二)开关电源的分类

    根据变换方式,电源产品有下列四大类; (1):第一大类:AC/DC开关电源; (2):第二大类:DC/DC开关电源; (3):第三大类:DC/AC开关电源; (4):第四大类:AC/AC开关电源。 鉴于传统,目前只将前两类称为开关电源,而将后两类分别称为逆变器和变频器。 在国内,还

    2024年02月10日
    浏览(38)
  • DC/DC开关电源学习笔记(三)开关频率和储能元件

    频率是开关电源的一个基本属性,它代表了直流电压开启和关断的速率。了解开关频率就可以了解实际应用中电源线路的工作原理。 开关电源利用开关动作将直流电转换为特定频率的脉冲电流能量。电能按照预定的要求释放,电感能量和电容能量存储在电路组件中。与人类的

    2024年02月10日
    浏览(30)
  • 《综合与Design_Compiler》学习笔记——第一章综合综述 第二章verilog语言结构到门级的映射 第三章 使用DC进行综合

    2023.6.25 2023.6.27 和之前学的芯动力mooc中很多内容相似,这篇整理的逻辑更好些 将RTL代码转换到基于工艺库的门级网表。一般分为如下三个步骤。 (1)逻辑级综合 设计被描述成 布尔等式 的形式,触发器、锁存器这样的基本单元采用元件例化(instantiate)的方式表达出来,下面是

    2024年02月12日
    浏览(36)
  • 自动驾驶学习笔记(三)——场景设计

    #Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程— 传送门 《2023星火培训【感知专项营】》免费课程—传送门   前言 场景设计平台 场景地图 场景基本信息 主车行为 交通参与者 保存场景 总结      

    2024年02月07日
    浏览(32)
  • IC设计中的DC综合学习记录——模板记录

    一名优秀的IC设计工程师需要懂综合,清楚自己设计的代码与底层的电路的对应关系,明白综合工具对代码的优化方案从而设计出更优PPA(performance,power,area)的电路。同时综合在代码和实际门级电路之间扮演着重要的角色,DC是用于将RTL代码转换成可用于布局布线的网表文

    2024年02月05日
    浏览(25)
  • Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】

    ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。 ECharts 遵循 Apache-2.0 开源协议,免费商用。 ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示。 ECharts 包含了以下特性: 丰富的可视化

    2024年02月04日
    浏览(32)
  • Pycharm工具Python开发自动添加注释(详细)

    定义了一个函数,在函数下面敲入了三个双引号后,enter回车并没有自动出现注释,如图: 解决办法 Pycharm中依次打开File — Settings — Tools — Python Integrated Tools,如图: 成功

    2024年02月15日
    浏览(36)
  • Acrobat Pro DC 2023如何插入附件?Acrobat Pro DC添加附件方法介绍

    Acrobat Pro DC 2023是一款PDF编辑和管理软件,它提供了丰富的功能和工具,可以帮助用户轻松地创建、编辑、转换、组织和共享PDF文件。Acrobat Pro DC 2023还具有强大的安全性能,可以保护PDF文件的机密性和完整性,确保用户的信息和数据得到安全保护。此外,Acrobat Pro DC 2023还支持

    2024年02月09日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包