Virtualclock怎么使用
这篇文章主要介绍“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。
我们知道,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怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
当前名称:Virtualclock怎么使用
本文URL:http://scyanting.com/article/jpscgo.html