温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Virtual clock怎么使用

发布时间:2021-12-30 15:45:38 来源:亿速云 阅读:220 作者:iii 栏目:互联网科技

这篇文章主要介绍“Virtual clock怎么使用”,在日常操作中,相信很多人在Virtual clock怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Virtual clock怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

什么是virtual clock

指的是没有定义source(时钟源)的时钟。通常用于对interface timing的约束,相关的sdc命令为set_input_delay set_output_delay。(相对应,定义了source(时钟源)的时钟,就是real clock)

示例:

create_clock -name VCLK -period 10

为什么要用virtual clock

简单的说,设置virtual clock的好处就是可以在不影响real clock的情况下,指定clock的clock network delay。

Virtual clock怎么使用

我们知道,clock latency包括了clock source latency和clock network delay。当BLOCK中没有做clock tree 的时候,clock network delay 等于0, 这时候,RegA到PORT这个path来说,用virtual clock还是用real clock, 效果都是一样的。

但是,当BLOCK到了CTS阶段后,因为有BLOCK内部有clock network delay的存在,而RegB仅仅是个虚拟的寄存器,他的clock tree是不存在的,因此,clock network delay也就是0,这就会导致 RegA 到 PORT的timing path变得过于严格(与之相反,input 到 内部寄存器的path的setup check就会过于乐观)。那么我们可以对RegB设source latency。然而不幸的是,如果用的是real clock, 那么必然会导致RegA的clock的source latency也相应的改变。这时候就体现出了virtual clock的好处。

示例:用virtual clock对PORT加约束

set_output_delay -clock [get_clocks VCLK] -max 1 [get_port PORT] -add

假设我们对于RegB 用的virtual clock(如示例),在CTS之后,就可以对VCLK加上latency:set_clock_latency -clock VCLK $clock_network_delay。

而对于real clock,在CTS之后,都要由ideal clock设为propgated     clock(set_propagated_clock), 这样,对于real clck,是不能够用set_clock_latency设置clock network delay的。

当然,用real clock也是有办法解决这个问题的,那就是修改input delay或者output delay。对于Figure1, 可以将output delay 减少 clock network delay一样的数值。

由于现在的PR工具都会在CTS之后自动进行update io latency的动作,我们完全没有非要用一个real clock,然后自己去在CTS之后去修正port的input delay或者output delay。

到此,关于“Virtual clock怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI