首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
数字电路
» 数字IC低功耗设计入门(二)——RTL级低功耗设计(4)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
数字IC低功耗设计入门(二)——RTL级低功耗设计(4)
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2017-11-7 16:14
|
只看该作者
数字IC低功耗设计入门(二)——RTL级低功耗设计(4)
在执行insert_clock_gating命令前,我们一般先使用set_clock_gating_style命令来指定要插入门控时钟电路的结构(或者说是插入门控时钟的风格)。下面我们就来介绍一下使用这个
set_clock_gating_style
命令可以进行插入哪些门控时钟电路结构。
·-sequential_cell
选项设置是否采用基于锁存器的风格。因为我们的门控时钟有三种形式(不适用锁存器的与门,基于锁存器+离散与门,集成的锁存器+与门),因此就要指定使用哪一种形式:
A:基于锁存器的离散门控单元是默认值,可以通过下面的命令来设置:
set_clock_gating_style -sequential_cell latch
B:不使用锁存器的门控单元,可以通过下面的命令来设置:
set_clock_gating_style -sequential_cell none
C:使用集成的门控单元则不需要使用这个-sequential_cell来设置了,因为-sequential_cell 选项设置是否采用基于锁存器的风格。使用集成的门控单元直接设置参数就可以了,例如可以通过下面的命令来设置使用集成的门控单元:
set_clock_gating_style “integrated”
一般推荐使用集成门控这种方式。
·-positive_edg_logic
选项(简写为-positive或-pos)设置在RTL代码中用上升沿锁存的寄存器(也就是上升沿沿触发的寄存器)采用何种门控逻辑。
-negative_edg_logic
选项(简写为-negative或-neg)设置在RTL代码中用下降沿锁存的寄存器(也就是下降沿触发的寄存器)采用何种门控逻辑。
例如下面的命令:
set_clock_gating_style -sequential_cell none -pos “or”
该命令设置了不适用锁存器的风格,然后对于上升沿触发的寄存器,其
门控单元使用或门逻辑
构成。
set_clock_gating_style -neg “integrated”
该命令置在RTL代码中用下降沿锁存的寄存器(也就是下降沿触发的寄存器)使用集成门控时钟单元。
set_clock_gating_style -positive “integrated” -negative “integrated”
该命令设置RTL代码中,无论你的寄存器是上升沿触发还是下降沿触发,控制该寄存器的时钟单元都是使用集成门控时钟单元。
·-minimum_bitwidth
选项用于设置进行时钟门控的
寄存器阵列的最小宽度
。对于宽度小于该设置的寄存器阵列,不进行时钟门控;然而当电路由有公共使能时,会对电路进行分解进行集体门控。例如下面的命令作用与下面的电路:
set_clock_gating_style -minimum_bitwidth 4
上述命令意味着
一个门控时钟至少要触发4个寄存器
。左图中有3个寄存器组,每组
只有3个寄存器
,不能满足至少要有4个寄存器的要求。因此,对于
每个组的寄存器
,不能用门控时钟。然而,所有的3个寄存器组,都有1个公共的使能信号”a”,我们可以把它分解出来作为控制时钟的门控信号。这样一来,信号“a”控制9个寄存器,它满足最少要触发4个寄存器的要求。因此将上面的命令约束上面左边的电路时,综合得到结果就会成为右边有门控时钟的电路。
·-num_stages
选项用于设置一个多级门控的级数。在有些设计中,顶层的门控信号会分解成不同的子门控信号。在缺省情况下,仅对跟寄存器阵列相连的门控制信号生成门控逻辑。例如对于下面的电路图:
在这个例子中,全局门控信号EN分别跟a,b,c信号组合,然后驱动不同的寄存器阵列。缺省情形下(set_clock_gating_style命令的默认设置为“num_stages”等于“1",缺省时也为1),跟寄存器阵列相连的门控信号 由门控单元给出。
由于所有的3个寄存器组都有1个公共使能“a",它可以被分解出来产生1个额外(级)的门控时钟单元。在set_clock_gating_style命令加选项“-num_stages 2",就可以产生下图所示的两级门控时钟:
使用多级门控时钟,时钟综合器可以尽量地摆放门控时钟单元,使它靠近时钟源,从而最大限度地降低时钟树的功耗。
·
-control_point与-control_signal
选项跟DFT有关,用于设置该门控单元在
DFT时是否可控
,DFT
控制信号
是scan-enable还是test-mode,以及DFT控制信号与EN信号的组合逻辑是放在门逻辑中的锁存器之前还是之后。通常,将DFT控制信号与EN信号进行
或
操作,这样在DFT时,可以控制该门控逻辑。例如下面的命令约束:
set_clock_gating_style -control_point before -control_signal test_mode
·-observation_point
选项跟DFT有关,用于设置是否要
插入观测逻辑
,以便在DFT时能看到门控逻辑内部的信号。
例如下面的约束命令:
set_clock_gating_style -observation_point true
则设置插入观测,逻辑,如下图所示:
除了上述选项外,该命令还有一些其他的选项设置,比如
-setup
选项设置建立时间约束。
-hold
选项设置保持时间约束。
-observation_logic_depth
选项用于设置观察电路中异或门的数目。
-max_fanout
选项设置一个门控单元所驱动的最大负载数目,定义CG单元最大扇出的一个目的是减少CG后面的时钟延迟,门控时钟单元的扇出越大,它到达寄存器的延迟越长;此外,还有用来约束重新平衡(后面会有对重新平衡进行介绍)。"set_clock_gating_style"命令有很多选项,我们可以在Power Compiler用
"man set_clock_gating_style
"命令来查看其详细的使用方法。
==============================================================================
设置了门控时钟的加入风格之后,我们就可以设置在门级网表电路中加入门控时钟。在Power Compile:里,用
insert_clock_gating
命令可在GTECH网表上加入门控时钟。这个命令可以单独使用,也可以配合一些选项,设置一些功能,我们下面主要介绍一下
-global
选项。
我们来看一下下面这段代码:
always @ (posedge clk)begin
if (a && b) q=d;
end
当有多个模块都有这段代码时,
单单
利用insert_clock_gating命令就会得到下面的带门控时钟的电路:
上述电路中,有两个模块都有门控时钟,都是同一个控制信号。那么我们就可以使用
insert_clock_gating -global
选项,让门控时钟可以穿越层次结构,插入到设计中。这样一来,既可以省门控时钟,又可以省面积。使用该选项后,综合得到的带门控时钟的电路如下所示:
因此使用insert_clock_gating加选项“-global",可以使门控时钟穿越层次结构。如果不用选项“-global",在每个模块里有一个门控时钟单元。
实现门控时钟的方法就如前面所示,主要是设置门控时钟的风格和加入门控时钟这两个命令以及他们的一些选项。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议