在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2431|回复: 3

[求助] 请教:异步计数器之DC约束,谢谢!

[复制链接]
发表于 2015-11-29 16:52:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 sevid 于 2015-11-29 20:02 编辑

异步计数器.jpg


如上图所示的异步计数器,如果使用DC约束的话:
create_clock -name cp0 -period 1 [get_ports cp0]
create_generated_clock -name cp2 -divide_by 2 -source [get_ports cp0] [get_pins ../Q0] -master_clock cp0 -add
create_generated_clock -name cp4 -divide_by 4 -source [get_ports cp0] [get_pins ../Q1] -master_clock cp0 -add
create_generated_clock -name cp8 -divide_by 8 -source [get_ports cp0] [get_pins ../Q2] -master_clock cp0 -add


有几个问题请教下:

1. 上面的generated时钟是否正确?

2. 是否需要在源时钟(cp0)和分频时钟(cp2/cp4/cp8)之间以及各分频时钟(cp2/cp4/cp8)之间进行set_false_path设置?如:

set_false_path -from cp0 -to cp2
set_false_path -from cp2 -to cp0
set_false_path -from cp2 -to cp4
set_false_path -from cp4 -to cp2
......


3. 设置完时钟之后的约束,如set_clock_uncertainty/set_clock_latency,以及set_input_delay/set_output_delay等应该如何设置?
我的理解:
可定义针对cp0的input_delay,因为cp0相当于外部的时钟源输入,那么针对cp0的output_delay如何设置呢?
而cp2/cp4/cp8这些生成时钟,可定义其output_delay,因为这些信号都是需要驱动外部负载的,那么针对cp2/cp4/cp8如何定义其input_delay呢?
因为这些异步计数器的触发器之间没有组合逻辑,所以很容易出现hold time时序违背的问题,如果不定义约束的话,如何保证满足其hold time呢?当然后端布局布线之后可能不存在hold time违背的问题,但是这个如果在DC约束阶段能够约束到的话,不是不用后端布局布线之后再去检查了吗?

4. 如果这些触发器都是带有reset端的触发器,那么如何进行约束保证其满足recovery时间和removal时间呢?因为毕竟这些触发器都是异步的时钟驱动的。


请教,谢谢!
发表于 2015-11-30 08:30:00 | 显示全部楼层
看不清你这里面中间D Q怎么连的,一般时钟部分都是donttouch,inputdelay只是负责其他的输入,跟时钟无关,时钟设置latency就可以了,hold time一般都是后端做好了之后再去修,综合的时候先不要管,毕竟你练是时钟树都没有出来,如果是Q输出端做时钟,这种行波计数没搞过,不知道你要做什么用,每一级因为总有tcq,会导致输出的累积偏移,我反正没用过
 楼主| 发表于 2015-11-30 15:14:50 | 显示全部楼层
异步计数器,也即每一级都是二分频器:
1) /Q反馈连接到本级触发器的D输入,并且作为下一级触发器的时钟输入;
2) hold time是像你说的一般都是后端布局布线之后再修;
3) 这种异步计数器(行波计数器)一般用于低功耗设计中;
4) 确实是像你所说,每一级都会有tcq,所以每一次的分频输出(Q)都会累计偏移,所以就是如果把每一级的Q输出(分频输出)作为一个分频时钟使用的话,那么各个触发器复位的recovery time和removal time如何从时序约束上保证?
谢谢!
发表于 2015-11-30 16:38:09 | 显示全部楼层
时钟定义没有问题,建议在/Q后面加一个buf,buf输入接到寄存器D段,buf输出接到下一个寄存器CK。避免信号既做数据又做时钟的情况。
貌似这种电路不会存在hold violation 问题,跟寄存器A输出到寄存器B的情形还是有区别的。
如果所有寄存器都用同一个复位,那recov/remov问题只需考虑第1级就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 12:51 , Processed in 0.017681 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表